@nirvana-labs/nirvana-mcp 1.17.3 → 1.18.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.
- package/README.md +7 -0
- package/docs-search-tool.d.mts.map +1 -1
- package/docs-search-tool.d.ts.map +1 -1
- package/docs-search-tool.js +2 -1
- package/docs-search-tool.js.map +1 -1
- package/docs-search-tool.mjs +2 -1
- package/docs-search-tool.mjs.map +1 -1
- package/options.d.mts.map +1 -1
- package/options.d.ts.map +1 -1
- package/options.js +3 -2
- package/options.js.map +1 -1
- package/options.mjs +3 -2
- package/options.mjs.map +1 -1
- package/package.json +2 -2
- package/server.js +1 -1
- package/server.mjs +1 -1
- package/src/docs-search-tool.ts +4 -1
- package/src/options.ts +3 -2
- package/src/server.ts +1 -1
- package/src/tools/api-keys/create-api-keys.ts +11 -4
- package/src/tools/api-keys/get-api-keys.ts +1 -1
- package/src/tools/api-keys/list-api-keys.ts +1 -1
- package/src/tools/api-keys/update-api-keys.ts +9 -2
- package/src/tools/compute/vms/availability/create-vms-compute-availability.ts +3 -3
- package/src/tools/compute/vms/create-compute-vms.ts +4 -4
- package/src/tools/compute/vms/delete-compute-vms.ts +1 -1
- package/src/tools/compute/vms/restart-compute-vms.ts +1 -1
- package/src/tools/compute/vms/update-compute-vms.ts +1 -1
- package/src/tools/compute/vms/volumes/list-vms-compute-volumes.ts +1 -1
- package/src/tools/compute/volumes/availability/create-volumes-compute-availability.ts +3 -3
- package/src/tools/compute/volumes/availability/update-volumes-compute-availability.ts +2 -2
- package/src/tools/compute/volumes/create-compute-volumes.ts +4 -4
- package/src/tools/compute/volumes/delete-compute-volumes.ts +1 -1
- package/src/tools/compute/volumes/get-compute-volumes.ts +1 -1
- package/src/tools/compute/volumes/list-compute-volumes.ts +1 -1
- package/src/tools/compute/volumes/update-compute-volumes.ts +3 -3
- package/src/tools/connect/flux/create-connect-flux.ts +102 -0
- package/src/tools/connect/flux/delete-connect-flux.ts +47 -0
- package/src/tools/connect/flux/get-connect-flux.ts +1 -1
- package/src/tools/connect/flux/list-connect-flux.ts +1 -1
- package/src/tools/connect/flux/providers/list-flux-connect-providers.ts +44 -0
- package/src/tools/connect/flux/update-connect-flux.ts +49 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/networking/firewall-rules/create-networking-firewall-rules.ts +6 -6
- package/src/tools/networking/firewall-rules/delete-networking-firewall-rules.ts +1 -1
- package/src/tools/networking/firewall-rules/get-networking-firewall-rules.ts +1 -1
- package/src/tools/networking/firewall-rules/list-networking-firewall-rules.ts +1 -1
- package/src/tools/networking/firewall-rules/update-networking-firewall-rules.ts +6 -6
- package/src/tools/networking/vpcs/create-networking-vpcs.ts +1 -1
- package/src/tools/networking/vpcs/delete-networking-vpcs.ts +1 -1
- package/src/tools/networking/vpcs/get-networking-vpcs.ts +1 -1
- package/src/tools/networking/vpcs/list-networking-vpcs.ts +1 -1
- package/src/tools/networking/vpcs/update-networking-vpcs.ts +1 -1
- package/src/tools/operations/get-operations.ts +1 -1
- package/src/tools/operations/list-operations.ts +1 -1
- package/src/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.ts +1 -1
- package/src/tools/rpc-nodes/dedicated/get-rpc-nodes-dedicated.ts +1 -1
- package/src/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.ts +1 -1
- package/src/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.ts +1 -1
- package/src/tools/rpc-nodes/flex/get-rpc-nodes-flex.ts +1 -1
- package/src/tools/rpc-nodes/flex/list-rpc-nodes-flex.ts +1 -1
- package/src/tools/user/get-user.ts +1 -1
- package/tools/api-keys/create-api-keys.d.mts.map +1 -1
- package/tools/api-keys/create-api-keys.d.ts.map +1 -1
- package/tools/api-keys/create-api-keys.js +11 -4
- package/tools/api-keys/create-api-keys.js.map +1 -1
- package/tools/api-keys/create-api-keys.mjs +11 -4
- package/tools/api-keys/create-api-keys.mjs.map +1 -1
- package/tools/api-keys/get-api-keys.js +1 -1
- package/tools/api-keys/get-api-keys.js.map +1 -1
- package/tools/api-keys/get-api-keys.mjs +1 -1
- package/tools/api-keys/get-api-keys.mjs.map +1 -1
- package/tools/api-keys/list-api-keys.js +1 -1
- package/tools/api-keys/list-api-keys.js.map +1 -1
- package/tools/api-keys/list-api-keys.mjs +1 -1
- package/tools/api-keys/list-api-keys.mjs.map +1 -1
- package/tools/api-keys/update-api-keys.d.mts.map +1 -1
- package/tools/api-keys/update-api-keys.d.ts.map +1 -1
- package/tools/api-keys/update-api-keys.js +9 -2
- package/tools/api-keys/update-api-keys.js.map +1 -1
- package/tools/api-keys/update-api-keys.mjs +9 -2
- package/tools/api-keys/update-api-keys.mjs.map +1 -1
- package/tools/compute/vms/availability/create-vms-compute-availability.js +3 -3
- package/tools/compute/vms/availability/create-vms-compute-availability.mjs +3 -3
- package/tools/compute/vms/create-compute-vms.js +4 -4
- package/tools/compute/vms/create-compute-vms.mjs +4 -4
- package/tools/compute/vms/delete-compute-vms.js +1 -1
- package/tools/compute/vms/delete-compute-vms.mjs +1 -1
- package/tools/compute/vms/restart-compute-vms.js +1 -1
- package/tools/compute/vms/restart-compute-vms.mjs +1 -1
- package/tools/compute/vms/update-compute-vms.js +1 -1
- package/tools/compute/vms/update-compute-vms.mjs +1 -1
- package/tools/compute/vms/volumes/list-vms-compute-volumes.js +1 -1
- package/tools/compute/vms/volumes/list-vms-compute-volumes.mjs +1 -1
- package/tools/compute/volumes/availability/create-volumes-compute-availability.js +3 -3
- package/tools/compute/volumes/availability/create-volumes-compute-availability.mjs +3 -3
- package/tools/compute/volumes/availability/update-volumes-compute-availability.js +2 -2
- package/tools/compute/volumes/availability/update-volumes-compute-availability.mjs +2 -2
- package/tools/compute/volumes/create-compute-volumes.js +4 -4
- package/tools/compute/volumes/create-compute-volumes.mjs +4 -4
- package/tools/compute/volumes/delete-compute-volumes.js +1 -1
- package/tools/compute/volumes/delete-compute-volumes.mjs +1 -1
- package/tools/compute/volumes/get-compute-volumes.js +1 -1
- package/tools/compute/volumes/get-compute-volumes.mjs +1 -1
- package/tools/compute/volumes/list-compute-volumes.js +1 -1
- package/tools/compute/volumes/list-compute-volumes.mjs +1 -1
- package/tools/compute/volumes/update-compute-volumes.js +3 -3
- package/tools/compute/volumes/update-compute-volumes.mjs +3 -3
- package/tools/connect/flux/create-connect-flux.d.mts +45 -0
- package/tools/connect/flux/create-connect-flux.d.mts.map +1 -0
- package/tools/connect/flux/create-connect-flux.d.ts +45 -0
- package/tools/connect/flux/create-connect-flux.d.ts.map +1 -0
- package/tools/connect/flux/create-connect-flux.js +97 -0
- package/tools/connect/flux/create-connect-flux.js.map +1 -0
- package/tools/connect/flux/create-connect-flux.mjs +93 -0
- package/tools/connect/flux/create-connect-flux.mjs.map +1 -0
- package/tools/connect/flux/delete-connect-flux.d.mts +45 -0
- package/tools/connect/flux/delete-connect-flux.d.mts.map +1 -0
- package/tools/connect/flux/delete-connect-flux.d.ts +45 -0
- package/tools/connect/flux/delete-connect-flux.d.ts.map +1 -0
- package/tools/connect/flux/delete-connect-flux.js +42 -0
- package/tools/connect/flux/delete-connect-flux.js.map +1 -0
- package/tools/connect/flux/delete-connect-flux.mjs +38 -0
- package/tools/connect/flux/delete-connect-flux.mjs.map +1 -0
- package/tools/connect/flux/get-connect-flux.js +1 -1
- package/tools/connect/flux/get-connect-flux.js.map +1 -1
- package/tools/connect/flux/get-connect-flux.mjs +1 -1
- package/tools/connect/flux/get-connect-flux.mjs.map +1 -1
- package/tools/connect/flux/list-connect-flux.js +1 -1
- package/tools/connect/flux/list-connect-flux.js.map +1 -1
- package/tools/connect/flux/list-connect-flux.mjs +1 -1
- package/tools/connect/flux/list-connect-flux.mjs.map +1 -1
- package/tools/connect/flux/providers/list-flux-connect-providers.d.mts +45 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.d.mts.map +1 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.d.ts +45 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.d.ts.map +1 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.js +39 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.js.map +1 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.mjs +35 -0
- package/tools/connect/flux/providers/list-flux-connect-providers.mjs.map +1 -0
- package/tools/connect/flux/update-connect-flux.d.mts +45 -0
- package/tools/connect/flux/update-connect-flux.d.mts.map +1 -0
- package/tools/connect/flux/update-connect-flux.d.ts +45 -0
- package/tools/connect/flux/update-connect-flux.d.ts.map +1 -0
- package/tools/connect/flux/update-connect-flux.js +44 -0
- package/tools/connect/flux/update-connect-flux.js.map +1 -0
- package/tools/connect/flux/update-connect-flux.mjs +40 -0
- package/tools/connect/flux/update-connect-flux.mjs.map +1 -0
- package/tools/index.d.mts.map +1 -1
- package/tools/index.d.ts.map +1 -1
- package/tools/index.js +8 -0
- package/tools/index.js.map +1 -1
- package/tools/index.mjs +8 -0
- package/tools/index.mjs.map +1 -1
- package/tools/networking/firewall-rules/create-networking-firewall-rules.js +6 -6
- package/tools/networking/firewall-rules/create-networking-firewall-rules.mjs +6 -6
- package/tools/networking/firewall-rules/delete-networking-firewall-rules.js +1 -1
- package/tools/networking/firewall-rules/delete-networking-firewall-rules.mjs +1 -1
- package/tools/networking/firewall-rules/get-networking-firewall-rules.js +1 -1
- package/tools/networking/firewall-rules/get-networking-firewall-rules.mjs +1 -1
- package/tools/networking/firewall-rules/list-networking-firewall-rules.js +1 -1
- package/tools/networking/firewall-rules/list-networking-firewall-rules.mjs +1 -1
- package/tools/networking/firewall-rules/update-networking-firewall-rules.js +6 -6
- package/tools/networking/firewall-rules/update-networking-firewall-rules.mjs +6 -6
- package/tools/networking/vpcs/create-networking-vpcs.js +1 -1
- package/tools/networking/vpcs/create-networking-vpcs.mjs +1 -1
- package/tools/networking/vpcs/delete-networking-vpcs.js +1 -1
- package/tools/networking/vpcs/delete-networking-vpcs.mjs +1 -1
- package/tools/networking/vpcs/get-networking-vpcs.js +1 -1
- package/tools/networking/vpcs/get-networking-vpcs.mjs +1 -1
- package/tools/networking/vpcs/list-networking-vpcs.js +1 -1
- package/tools/networking/vpcs/list-networking-vpcs.mjs +1 -1
- package/tools/networking/vpcs/update-networking-vpcs.js +1 -1
- package/tools/networking/vpcs/update-networking-vpcs.mjs +1 -1
- package/tools/operations/get-operations.js +1 -1
- package/tools/operations/get-operations.mjs +1 -1
- package/tools/operations/list-operations.js +1 -1
- package/tools/operations/list-operations.mjs +1 -1
- package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.js +1 -1
- package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.js.map +1 -1
- package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.mjs +1 -1
- package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.mjs.map +1 -1
- package/tools/rpc-nodes/dedicated/get-rpc-nodes-dedicated.js +1 -1
- package/tools/rpc-nodes/dedicated/get-rpc-nodes-dedicated.js.map +1 -1
- package/tools/rpc-nodes/dedicated/get-rpc-nodes-dedicated.mjs +1 -1
- package/tools/rpc-nodes/dedicated/get-rpc-nodes-dedicated.mjs.map +1 -1
- package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.js +1 -1
- package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.js.map +1 -1
- package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.mjs +1 -1
- package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.mjs.map +1 -1
- package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.js +1 -1
- package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.js.map +1 -1
- package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.mjs +1 -1
- package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.mjs.map +1 -1
- package/tools/rpc-nodes/flex/get-rpc-nodes-flex.js +1 -1
- package/tools/rpc-nodes/flex/get-rpc-nodes-flex.js.map +1 -1
- package/tools/rpc-nodes/flex/get-rpc-nodes-flex.mjs +1 -1
- package/tools/rpc-nodes/flex/get-rpc-nodes-flex.mjs.map +1 -1
- package/tools/rpc-nodes/flex/list-rpc-nodes-flex.js +1 -1
- package/tools/rpc-nodes/flex/list-rpc-nodes-flex.js.map +1 -1
- package/tools/rpc-nodes/flex/list-rpc-nodes-flex.mjs +1 -1
- package/tools/rpc-nodes/flex/list-rpc-nodes-flex.mjs.map +1 -1
- package/tools/user/get-user.js +1 -1
- package/tools/user/get-user.js.map +1 -1
- package/tools/user/get-user.mjs +1 -1
- package/tools/user/get-user.mjs.map +1 -1
|
@@ -24,15 +24,15 @@ export const tool: Tool = {
|
|
|
24
24
|
properties: {
|
|
25
25
|
name: {
|
|
26
26
|
type: 'string',
|
|
27
|
-
description: 'Name of the
|
|
27
|
+
description: 'Name of the Volume.',
|
|
28
28
|
},
|
|
29
29
|
size: {
|
|
30
30
|
type: 'integer',
|
|
31
|
-
description: 'Size of the
|
|
31
|
+
description: 'Size of the Volume in GB.',
|
|
32
32
|
},
|
|
33
33
|
vm_id: {
|
|
34
34
|
type: 'string',
|
|
35
|
-
description: 'ID of the VM the
|
|
35
|
+
description: 'ID of the VM the Volume is attached to.',
|
|
36
36
|
},
|
|
37
37
|
jq_filter: {
|
|
38
38
|
type: 'string',
|
|
@@ -27,11 +27,11 @@ export const tool: Tool = {
|
|
|
27
27
|
},
|
|
28
28
|
name: {
|
|
29
29
|
type: 'string',
|
|
30
|
-
description: 'Name of the
|
|
30
|
+
description: 'Name of the Volume.',
|
|
31
31
|
},
|
|
32
32
|
size: {
|
|
33
33
|
type: 'integer',
|
|
34
|
-
description: 'Size of the
|
|
34
|
+
description: 'Size of the Volume in GB.',
|
|
35
35
|
},
|
|
36
36
|
jq_filter: {
|
|
37
37
|
type: 'string',
|
|
@@ -18,21 +18,21 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'create_compute_volumes',
|
|
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\nCreate a Volume. Only data volumes can be created.\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
|
|
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 Volume. Only data volumes can be created.\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
25
|
name: {
|
|
26
26
|
type: 'string',
|
|
27
|
-
description: 'Name of the
|
|
27
|
+
description: 'Name of the Volume.',
|
|
28
28
|
},
|
|
29
29
|
size: {
|
|
30
30
|
type: 'integer',
|
|
31
|
-
description: 'Size of the
|
|
31
|
+
description: 'Size of the Volume in GB.',
|
|
32
32
|
},
|
|
33
33
|
vm_id: {
|
|
34
34
|
type: 'string',
|
|
35
|
-
description: 'ID of the VM the
|
|
35
|
+
description: 'ID of the VM the Volume is attached to.',
|
|
36
36
|
},
|
|
37
37
|
jq_filter: {
|
|
38
38
|
type: 'string',
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'delete_compute_volumes',
|
|
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\nDelete a Volume. Boot or data volumes can be deleted.\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
|
|
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 a Volume. Boot or data volumes can be deleted.\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: {
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'get_compute_volumes',
|
|
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\nGet a Volume.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/volume',\n $defs: {\n volume: {\n type: 'object',\n description: 'Volume details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the
|
|
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 a Volume.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/volume',\n $defs: {\n volume: {\n type: 'object',\n description: 'Volume details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Volume.'\n },\n created_at: {\n type: 'string',\n description: 'When the Volume was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/volume_kind'\n },\n name: {\n type: 'string',\n description: 'Name of the Volume.'\n },\n size: {\n type: 'integer',\n description: 'Size of the Volume in GB.'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n type: {\n $ref: '#/$defs/storage_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Volume was updated.',\n format: 'date-time'\n },\n vm_id: {\n type: 'string',\n description: 'ID of the VM the Volume is attached to.'\n },\n vm_name: {\n type: 'string',\n description: 'Name of the VM the Volume is attached to.'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'name',\n 'size',\n 'status',\n 'type',\n 'updated_at',\n 'vm_id',\n 'vm_name'\n ]\n },\n volume_kind: {\n type: 'string',\n description: 'Volume kind.',\n enum: [ 'boot',\n 'data'\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 storage_type: {\n type: 'string',\n description: 'Storage type the Volume is using.',\n enum: [ 'nvme'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'list_compute_volumes',
|
|
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 volumes\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/volume_list',\n $defs: {\n volume_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/volume'\n }\n }\n },\n required: [ 'items'\n ]\n },\n volume: {\n type: 'object',\n description: 'Volume details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the
|
|
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 volumes\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/volume_list',\n $defs: {\n volume_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/volume'\n }\n }\n },\n required: [ 'items'\n ]\n },\n volume: {\n type: 'object',\n description: 'Volume details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Volume.'\n },\n created_at: {\n type: 'string',\n description: 'When the Volume was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/volume_kind'\n },\n name: {\n type: 'string',\n description: 'Name of the Volume.'\n },\n size: {\n type: 'integer',\n description: 'Size of the Volume in GB.'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n type: {\n $ref: '#/$defs/storage_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Volume was updated.',\n format: 'date-time'\n },\n vm_id: {\n type: 'string',\n description: 'ID of the VM the Volume is attached to.'\n },\n vm_name: {\n type: 'string',\n description: 'Name of the VM the Volume is attached to.'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'name',\n 'size',\n 'status',\n 'type',\n 'updated_at',\n 'vm_id',\n 'vm_name'\n ]\n },\n volume_kind: {\n type: 'string',\n description: 'Volume kind.',\n enum: [ 'boot',\n 'data'\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 storage_type: {\n type: 'string',\n description: 'Storage type the Volume is using.',\n enum: [ 'nvme'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'update_compute_volumes',
|
|
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 a Volume. Boot or data volumes can be updated.\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
|
|
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 a Volume. Boot or data volumes can be updated.\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: {
|
|
@@ -27,11 +27,11 @@ export const tool: Tool = {
|
|
|
27
27
|
},
|
|
28
28
|
name: {
|
|
29
29
|
type: 'string',
|
|
30
|
-
description: 'Name of the
|
|
30
|
+
description: 'Name of the Volume.',
|
|
31
31
|
},
|
|
32
32
|
size: {
|
|
33
33
|
type: 'integer',
|
|
34
|
-
description: 'Size of the
|
|
34
|
+
description: 'Size of the Volume in GB.',
|
|
35
35
|
},
|
|
36
36
|
jq_filter: {
|
|
37
37
|
type: 'string',
|
|
@@ -0,0 +1,102 @@
|
|
|
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: 'connect.flux',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'post',
|
|
14
|
+
httpPath: '/v1/connect/flux',
|
|
15
|
+
operationId: 'create_connect_flux',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'create_connect_flux',
|
|
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 Connect Flux\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
|
+
bandwidth_mbps: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Connect Flux speed in Mbps',
|
|
28
|
+
enum: [50, 200, 500, 1000, 2000],
|
|
29
|
+
},
|
|
30
|
+
cidrs: {
|
|
31
|
+
type: 'array',
|
|
32
|
+
description: 'CIDRs for the Connect Flux',
|
|
33
|
+
items: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
name: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Name of the Connect Flux',
|
|
40
|
+
},
|
|
41
|
+
provider_cidrs: {
|
|
42
|
+
type: 'array',
|
|
43
|
+
description: 'Provider CIDRs',
|
|
44
|
+
items: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
region: {
|
|
49
|
+
$ref: '#/$defs/region_name',
|
|
50
|
+
},
|
|
51
|
+
aws: {
|
|
52
|
+
$ref: '#/$defs/flux_provider_aws_config_request',
|
|
53
|
+
},
|
|
54
|
+
jq_filter: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
title: 'jq Filter',
|
|
57
|
+
description:
|
|
58
|
+
'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/).',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ['bandwidth_mbps', 'cidrs', 'name', 'provider_cidrs', 'region'],
|
|
62
|
+
$defs: {
|
|
63
|
+
region_name: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
description: 'Region the resource is in.',
|
|
66
|
+
enum: [
|
|
67
|
+
'us-sea-1',
|
|
68
|
+
'us-sva-1',
|
|
69
|
+
'us-chi-1',
|
|
70
|
+
'us-wdc-1',
|
|
71
|
+
'eu-frk-1',
|
|
72
|
+
'ap-sin-1',
|
|
73
|
+
'ap-seo-1',
|
|
74
|
+
'ap-tyo-1',
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
flux_provider_aws_config_request: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
description: 'AWS provider configuration',
|
|
80
|
+
properties: {
|
|
81
|
+
account_number: {
|
|
82
|
+
type: 'string',
|
|
83
|
+
description: 'AWS account number',
|
|
84
|
+
},
|
|
85
|
+
region: {
|
|
86
|
+
type: 'string',
|
|
87
|
+
description: 'AWS region where the connection will be established',
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
required: ['account_number', 'region'],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
annotations: {},
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
|
|
98
|
+
const { jq_filter, ...body } = args as any;
|
|
99
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.connect.flux.create(body)));
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,47 @@
|
|
|
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: 'connect.flux',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'delete',
|
|
14
|
+
httpPath: '/v1/connect/flux/{flux_id}',
|
|
15
|
+
operationId: 'delete_connect_flux',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'delete_connect_flux',
|
|
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 Flux\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
|
+
flux_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: ['flux_id'],
|
|
36
|
+
},
|
|
37
|
+
annotations: {
|
|
38
|
+
idempotentHint: true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
|
|
43
|
+
const { flux_id, jq_filter, ...body } = args as any;
|
|
44
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.connect.flux.delete(flux_id)));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default { metadata, tool, handler };
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'get_connect_flux',
|
|
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\nGet Connect Flux details\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/
|
|
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 Flux details\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flux',\n $defs: {\n flux: {\n type: 'object',\n description: 'Connect flux details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Connect Flux'\n },\n asn: {\n type: 'integer',\n description: 'ASN'\n },\n aws: {\n $ref: '#/$defs/flux_provider_aws_config'\n },\n bandwidth_mbps: {\n type: 'string',\n description: 'Connect Flux speed in Mbps',\n enum: [ 50,\n 200,\n 500,\n 1000,\n 2000\n ]\n },\n cidrs: {\n type: 'array',\n description: 'CIDRs for the Connect Flux',\n items: {\n type: 'string'\n }\n },\n created_at: {\n type: 'string',\n description: 'When the Connect Flux was created',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Connect Flux'\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 Flux',\n items: {\n type: 'string'\n }\n },\n provider_router_ip: {\n type: 'string',\n description: 'Provider Router IP'\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 updated_at: {\n type: 'string',\n description: 'When the Connect Flux 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 'updated_at'\n ]\n },\n flux_provider_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 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
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'list_connect_flux',
|
|
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 Connect Flux\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/
|
|
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 Flux\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flux_list',\n $defs: {\n flux_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/flux'\n }\n }\n },\n required: [ 'items'\n ]\n },\n flux: {\n type: 'object',\n description: 'Connect flux details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Connect Flux'\n },\n asn: {\n type: 'integer',\n description: 'ASN'\n },\n aws: {\n $ref: '#/$defs/flux_provider_aws_config'\n },\n bandwidth_mbps: {\n type: 'string',\n description: 'Connect Flux speed in Mbps',\n enum: [ 50,\n 200,\n 500,\n 1000,\n 2000\n ]\n },\n cidrs: {\n type: 'array',\n description: 'CIDRs for the Connect Flux',\n items: {\n type: 'string'\n }\n },\n created_at: {\n type: 'string',\n description: 'When the Connect Flux was created',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Connect Flux'\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 Flux',\n items: {\n type: 'string'\n }\n },\n provider_router_ip: {\n type: 'string',\n description: 'Provider Router IP'\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 updated_at: {\n type: 'string',\n description: 'When the Connect Flux 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 'updated_at'\n ]\n },\n flux_provider_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 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
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -0,0 +1,44 @@
|
|
|
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: 'connect.flux.providers',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/v1/connect/flux/providers',
|
|
15
|
+
operationId: 'list_connect_flux_providers',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'list_flux_connect_providers',
|
|
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 providers with regions for Connect Flux.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flux_provider_list',\n $defs: {\n flux_provider_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/flux_provider'\n }\n }\n },\n required: [ 'items'\n ]\n },\n flux_provider: {\n type: 'object',\n description: 'Provider supported for Connect Flux.',\n properties: {\n name: {\n type: 'string',\n description: 'Provider name.'\n },\n region: {\n type: 'string',\n description: 'Provider region name.'\n }\n },\n required: [ 'name',\n 'region'\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(await maybeFilter(jq_filter, await client.connect.flux.providers.list()));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
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: 'connect.flux',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'patch',
|
|
14
|
+
httpPath: '/v1/connect/flux/{flux_id}',
|
|
15
|
+
operationId: 'update_connect_flux',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'update_connect_flux',
|
|
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```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
flux_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
},
|
|
28
|
+
name: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Name of the Connect Flux.',
|
|
31
|
+
},
|
|
32
|
+
jq_filter: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
title: 'jq Filter',
|
|
35
|
+
description:
|
|
36
|
+
'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/).',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
required: ['flux_id'],
|
|
40
|
+
},
|
|
41
|
+
annotations: {},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
|
|
45
|
+
const { flux_id, jq_filter, ...body } = args as any;
|
|
46
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.connect.flux.update(flux_id, body)));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default { metadata, tool, handler };
|
package/src/tools/index.ts
CHANGED
|
@@ -47,8 +47,12 @@ import list_flex_rpc_nodes_blockchains from './rpc-nodes/flex/blockchains/list-f
|
|
|
47
47
|
import list_rpc_nodes_dedicated from './rpc-nodes/dedicated/list-rpc-nodes-dedicated';
|
|
48
48
|
import get_rpc_nodes_dedicated from './rpc-nodes/dedicated/get-rpc-nodes-dedicated';
|
|
49
49
|
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';
|
|
50
52
|
import list_connect_flux from './connect/flux/list-connect-flux';
|
|
53
|
+
import delete_connect_flux from './connect/flux/delete-connect-flux';
|
|
51
54
|
import get_connect_flux from './connect/flux/get-connect-flux';
|
|
55
|
+
import list_flux_connect_providers from './connect/flux/providers/list-flux-connect-providers';
|
|
52
56
|
import list_registry_vektor_assets from './vektor/registry/assets/list-registry-vektor-assets';
|
|
53
57
|
import list_registry_vektor_blockchains from './vektor/registry/blockchains/list-registry-vektor-blockchains';
|
|
54
58
|
import list_registry_vektor_venues from './vektor/registry/venues/list-registry-vektor-venues';
|
|
@@ -148,8 +152,12 @@ addEndpoint(list_flex_rpc_nodes_blockchains);
|
|
|
148
152
|
addEndpoint(list_rpc_nodes_dedicated);
|
|
149
153
|
addEndpoint(get_rpc_nodes_dedicated);
|
|
150
154
|
addEndpoint(list_dedicated_rpc_nodes_blockchains);
|
|
155
|
+
addEndpoint(create_connect_flux);
|
|
156
|
+
addEndpoint(update_connect_flux);
|
|
151
157
|
addEndpoint(list_connect_flux);
|
|
158
|
+
addEndpoint(delete_connect_flux);
|
|
152
159
|
addEndpoint(get_connect_flux);
|
|
160
|
+
addEndpoint(list_flux_connect_providers);
|
|
153
161
|
addEndpoint(list_registry_vektor_assets);
|
|
154
162
|
addEndpoint(list_registry_vektor_blockchains);
|
|
155
163
|
addEndpoint(list_registry_vektor_venues);
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'create_networking_firewall_rules',
|
|
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\nCreate a firewall rule\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
|
|
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 firewall rule\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: {
|
|
@@ -27,27 +27,27 @@ export const tool: Tool = {
|
|
|
27
27
|
},
|
|
28
28
|
destination_address: {
|
|
29
29
|
type: 'string',
|
|
30
|
-
description: 'Destination address of the
|
|
30
|
+
description: 'Destination address of the Firewall Rule. Either VPC CIDR or VM in VPC.',
|
|
31
31
|
},
|
|
32
32
|
destination_ports: {
|
|
33
33
|
type: 'array',
|
|
34
|
-
description: 'Destination ports of the
|
|
34
|
+
description: 'Destination ports of the Firewall Rule.',
|
|
35
35
|
items: {
|
|
36
36
|
type: 'string',
|
|
37
37
|
},
|
|
38
38
|
},
|
|
39
39
|
name: {
|
|
40
40
|
type: 'string',
|
|
41
|
-
description: 'Name of the
|
|
41
|
+
description: 'Name of the Firewall Rule.',
|
|
42
42
|
},
|
|
43
43
|
protocol: {
|
|
44
44
|
type: 'string',
|
|
45
|
-
description: 'Protocol of the
|
|
45
|
+
description: 'Protocol of the Firewall Rule.',
|
|
46
46
|
enum: ['tcp', 'udp'],
|
|
47
47
|
},
|
|
48
48
|
source_address: {
|
|
49
49
|
type: 'string',
|
|
50
|
-
description: 'Source address of the
|
|
50
|
+
description: 'Source address of the Firewall Rule. Address of 0.0.0.0 requires a CIDR mask of 0.',
|
|
51
51
|
},
|
|
52
52
|
jq_filter: {
|
|
53
53
|
type: 'string',
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'delete_networking_firewall_rules',
|
|
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\nDelete a firewall rule\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
|
|
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 a firewall rule\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: {
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'get_networking_firewall_rules',
|
|
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\nGet details about a firewall rule\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/firewall_rule',\n $defs: {\n firewall_rule: {\n type: 'object',\n description: 'Firewall rule details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the
|
|
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 details about a firewall rule\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/firewall_rule',\n $defs: {\n firewall_rule: {\n type: 'object',\n description: 'Firewall rule details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Firewall Rule.'\n },\n created_at: {\n type: 'string',\n description: 'When the Firewall Rule was created.',\n format: 'date-time'\n },\n destination_address: {\n type: 'string',\n description: 'Destination address of the Firewall Rule. Either VPC CIDR or VM in VPC.'\n },\n destination_ports: {\n type: 'array',\n description: 'Destination ports of the Firewall Rule.',\n items: {\n type: 'string'\n }\n },\n name: {\n type: 'string',\n description: 'Name of the Firewall Rule.'\n },\n protocol: {\n type: 'string',\n description: 'Protocol of the Firewall Rule.',\n enum: [ 'tcp',\n 'udp'\n ]\n },\n source_address: {\n type: 'string',\n description: 'Source address of the Firewall Rule. Address of 0.0.0.0 requires a CIDR mask of 0.'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n updated_at: {\n type: 'string',\n description: 'When the Firewall Rule was updated.',\n format: 'date-time'\n },\n vpc_id: {\n type: 'string',\n description: 'ID of the VPC the Firewall Rule belongs to.'\n }\n },\n required: [ 'id',\n 'created_at',\n 'destination_address',\n 'destination_ports',\n 'name',\n 'protocol',\n 'source_address',\n 'status',\n 'updated_at',\n 'vpc_id'\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
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|