@nirvana-labs/nirvana-mcp 1.17.2 → 1.17.4
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/options.d.mts +1 -0
- package/options.d.mts.map +1 -1
- package/options.d.ts +1 -0
- package/options.d.ts.map +1 -1
- package/options.js +10 -4
- package/options.js.map +1 -1
- package/options.mjs +10 -4
- package/options.mjs.map +1 -1
- package/package.json +2 -2
- package/server.d.mts.map +1 -1
- package/server.d.ts.map +1 -1
- package/server.js +8 -5
- package/server.js.map +1 -1
- package/server.mjs +8 -5
- package/server.mjs.map +1 -1
- package/src/options.ts +14 -5
- package/src/server.ts +8 -6
- 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/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/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/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
|
@@ -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],
|
|
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 ]\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 ]\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: 'list_dedicated_rpc_nodes_blockchains',
|
|
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 Dedicated Blockchains\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 Dedicated Blockchains\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/dedicated_blockchain_list',\n $defs: {\n dedicated_blockchain_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/dedicated_blockchain'\n }\n }\n },\n required: [ 'items'\n ]\n },\n dedicated_blockchain: {\n type: 'object',\n description: 'Blockchain supported by the Dedicated RPC Node.',\n properties: {\n blockchain: {\n type: 'string',\n description: 'Blockchain type.'\n },\n network: {\n type: 'string',\n description: 'Network type (e.g., mainnet, testnet).'\n }\n },\n required: [ 'blockchain',\n 'network'\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_rpc_nodes_dedicated',
|
|
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 an RPC Node Dedicated\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 details about an RPC Node Dedicated\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/dedicated',\n $defs: {\n dedicated: {\n type: 'object',\n description: 'RPC Node Dedicated details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the RPC Node Dedicated.'\n },\n blockchain: {\n type: 'string',\n description: 'Blockchain type.'\n },\n created_at: {\n type: 'string',\n description: 'When the RPC Node Dedicated 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 Dedicated.'\n },\n network: {\n type: 'string',\n description: 'Network type (e.g., mainnet, testnet).'\n },\n updated_at: {\n type: 'string',\n description: 'When the RPC Node Dedicated was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'blockchain',\n 'created_at',\n 'endpoint',\n 'name',\n 'network',\n 'updated_at'\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_rpc_nodes_dedicated',
|
|
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 RPC Node Dedicated you created\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 RPC Node Dedicated you created\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/dedicated_list',\n $defs: {\n dedicated_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/dedicated'\n }\n }\n },\n required: [ 'items'\n ]\n },\n dedicated: {\n type: 'object',\n description: 'RPC Node Dedicated details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the RPC Node Dedicated.'\n },\n blockchain: {\n type: 'string',\n description: 'Blockchain type.'\n },\n created_at: {\n type: 'string',\n description: 'When the RPC Node Dedicated 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 Dedicated.'\n },\n network: {\n type: 'string',\n description: 'Network type (e.g., mainnet, testnet).'\n },\n updated_at: {\n type: 'string',\n description: 'When the RPC Node Dedicated was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'blockchain',\n 'created_at',\n 'endpoint',\n 'name',\n 'network',\n 'updated_at'\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_flex_rpc_nodes_blockchains',
|
|
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 Flex Blockchains\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 Flex Blockchains\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flex_blockchain_list',\n $defs: {\n flex_blockchain_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/flex_blockchain'\n }\n }\n },\n required: [ 'items'\n ]\n },\n flex_blockchain: {\n type: 'object',\n description: 'Blockchain supported by the Flex RPC Node.',\n properties: {\n blockchain: {\n type: 'string',\n description: 'Blockchain type.'\n },\n network: {\n type: 'string',\n description: 'Network type (e.g., mainnet, testnet).'\n }\n },\n required: [ 'blockchain',\n 'network'\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_rpc_nodes_flex',
|
|
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 an RPC Node Flex\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 details about an 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 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 'updated_at'\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_rpc_nodes_flex',
|
|
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 RPC Node Flex you created\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 RPC Node Flex you created\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flex_list',\n $defs: {\n flex_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/flex'\n }\n }\n },\n required: [ 'items'\n ]\n },\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 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 'updated_at'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from '@nirvana-labs/nirvana-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import NirvanaLabs from '@nirvana-labs/nirvana';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: NirvanaLabs, args: Record<string, unknown> | undefined) => Promise<import("@nirvana-labs/nirvana-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: NirvanaLabs, args: Record<string, unknown> | undefined) => Promise<import("@nirvana-labs/nirvana-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=create-connect-flux.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-connect-flux.d.mts","sourceRoot":"","sources":["../../../src/tools/connect/flux/create-connect-flux.ts"],"names":[],"mappings":"OAGO,EAAE,QAAQ,EAAuB,MAAM,uCAAuC;OAE9E,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,WAAW,MAAM,uBAAuB;AAE/C,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IA6ElB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,4EAG3F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,WAAW,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK5F,wBAA2C"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from '@nirvana-labs/nirvana-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import NirvanaLabs from '@nirvana-labs/nirvana';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: NirvanaLabs, args: Record<string, unknown> | undefined) => Promise<import("@nirvana-labs/nirvana-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: NirvanaLabs, args: Record<string, unknown> | undefined) => Promise<import("@nirvana-labs/nirvana-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=create-connect-flux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-connect-flux.d.ts","sourceRoot":"","sources":["../../../src/tools/connect/flux/create-connect-flux.ts"],"names":[],"mappings":"OAGO,EAAE,QAAQ,EAAuB,MAAM,uCAAuC;OAE9E,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,WAAW,MAAM,uBAAuB;AAE/C,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IA6ElB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,4EAG3F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,WAAW,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK5F,wBAA2C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.handler = exports.tool = exports.metadata = void 0;
|
|
5
|
+
const filtering_1 = require("@nirvana-labs/nirvana-mcp/filtering");
|
|
6
|
+
const types_1 = require("@nirvana-labs/nirvana-mcp/tools/types");
|
|
7
|
+
exports.metadata = {
|
|
8
|
+
resource: 'connect.flux',
|
|
9
|
+
operation: 'write',
|
|
10
|
+
tags: [],
|
|
11
|
+
httpMethod: 'post',
|
|
12
|
+
httpPath: '/v1/connect/flux',
|
|
13
|
+
operationId: 'create_connect_flux',
|
|
14
|
+
};
|
|
15
|
+
exports.tool = {
|
|
16
|
+
name: 'create_connect_flux',
|
|
17
|
+
description: "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```",
|
|
18
|
+
inputSchema: {
|
|
19
|
+
type: 'object',
|
|
20
|
+
properties: {
|
|
21
|
+
bandwidth_mbps: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Connect Flux speed in Mbps',
|
|
24
|
+
enum: [50, 200, 500],
|
|
25
|
+
},
|
|
26
|
+
cidrs: {
|
|
27
|
+
type: 'array',
|
|
28
|
+
description: 'CIDRs for the Connect Flux',
|
|
29
|
+
items: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
name: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Name of the Connect Flux',
|
|
36
|
+
},
|
|
37
|
+
provider_cidrs: {
|
|
38
|
+
type: 'array',
|
|
39
|
+
description: 'Provider CIDRs',
|
|
40
|
+
items: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
region: {
|
|
45
|
+
$ref: '#/$defs/region_name',
|
|
46
|
+
},
|
|
47
|
+
aws: {
|
|
48
|
+
$ref: '#/$defs/flux_provider_aws_config_request',
|
|
49
|
+
},
|
|
50
|
+
jq_filter: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
title: 'jq Filter',
|
|
53
|
+
description: '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/).',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
required: ['bandwidth_mbps', 'cidrs', 'name', 'provider_cidrs', 'region'],
|
|
57
|
+
$defs: {
|
|
58
|
+
region_name: {
|
|
59
|
+
type: 'string',
|
|
60
|
+
description: 'Region the resource is in.',
|
|
61
|
+
enum: [
|
|
62
|
+
'us-sea-1',
|
|
63
|
+
'us-sva-1',
|
|
64
|
+
'us-chi-1',
|
|
65
|
+
'us-wdc-1',
|
|
66
|
+
'eu-frk-1',
|
|
67
|
+
'ap-sin-1',
|
|
68
|
+
'ap-seo-1',
|
|
69
|
+
'ap-tyo-1',
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
flux_provider_aws_config_request: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
description: 'AWS provider configuration',
|
|
75
|
+
properties: {
|
|
76
|
+
account_number: {
|
|
77
|
+
type: 'string',
|
|
78
|
+
description: 'AWS account number',
|
|
79
|
+
},
|
|
80
|
+
region: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
description: 'AWS region where the connection will be established',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
required: ['account_number', 'region'],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
annotations: {},
|
|
90
|
+
};
|
|
91
|
+
const handler = async (client, args) => {
|
|
92
|
+
const { jq_filter, ...body } = args;
|
|
93
|
+
return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(jq_filter, await client.connect.flux.create(body)));
|
|
94
|
+
};
|
|
95
|
+
exports.handler = handler;
|
|
96
|
+
exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
|
|
97
|
+
//# sourceMappingURL=create-connect-flux.js.map
|