@nirvana-labs/nirvana-mcp 1.20.2 → 1.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +21 -1
  2. package/code-tool-worker.d.mts.map +1 -1
  3. package/code-tool-worker.d.ts.map +1 -1
  4. package/code-tool-worker.js +211 -7
  5. package/code-tool-worker.js.map +1 -1
  6. package/code-tool-worker.mjs +211 -7
  7. package/code-tool-worker.mjs.map +1 -1
  8. package/code-tool.d.mts +1 -1
  9. package/code-tool.d.mts.map +1 -1
  10. package/code-tool.d.ts +1 -1
  11. package/code-tool.d.ts.map +1 -1
  12. package/code-tool.js +11 -13
  13. package/code-tool.js.map +1 -1
  14. package/code-tool.mjs +11 -13
  15. package/code-tool.mjs.map +1 -1
  16. package/dynamic-tools.d.mts +1 -1
  17. package/dynamic-tools.d.ts +1 -1
  18. package/dynamic-tools.js +1 -1
  19. package/dynamic-tools.mjs +1 -1
  20. package/options.d.mts.map +1 -1
  21. package/options.d.ts.map +1 -1
  22. package/options.js +6 -3
  23. package/options.js.map +1 -1
  24. package/options.mjs +6 -3
  25. package/options.mjs.map +1 -1
  26. package/package.json +4 -2
  27. package/server.js +1 -1
  28. package/server.mjs +1 -1
  29. package/src/code-tool-worker.ts +256 -7
  30. package/src/code-tool.ts +14 -13
  31. package/src/dynamic-tools.ts +1 -1
  32. package/src/options.ts +10 -3
  33. package/src/server.ts +1 -1
  34. package/src/tools/api-keys/list-api-keys.ts +12 -3
  35. package/src/tools/compute/vms/list-compute-vms.ts +12 -3
  36. package/src/tools/compute/vms/volumes/list-vms-compute-volumes.ts +11 -2
  37. package/src/tools/compute/volumes/list-compute-volumes.ts +12 -3
  38. package/src/tools/networking/connect/connections/list-connect-networking-connections.ts +12 -5
  39. package/src/tools/networking/connect/routes/list-connect-networking-routes.ts +12 -3
  40. package/src/tools/networking/firewall-rules/list-networking-firewall-rules.ts +11 -4
  41. package/src/tools/networking/vpcs/list-networking-vpcs.ts +12 -3
  42. package/src/tools/operations/list-operations.ts +12 -3
  43. package/src/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.ts +13 -6
  44. package/src/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.ts +12 -3
  45. package/src/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.ts +13 -4
  46. package/src/tools/rpc-nodes/flex/list-rpc-nodes-flex.ts +12 -3
  47. package/tools/api-keys/list-api-keys.d.mts.map +1 -1
  48. package/tools/api-keys/list-api-keys.d.ts.map +1 -1
  49. package/tools/api-keys/list-api-keys.js +12 -3
  50. package/tools/api-keys/list-api-keys.js.map +1 -1
  51. package/tools/api-keys/list-api-keys.mjs +12 -3
  52. package/tools/api-keys/list-api-keys.mjs.map +1 -1
  53. package/tools/compute/vms/list-compute-vms.d.mts.map +1 -1
  54. package/tools/compute/vms/list-compute-vms.d.ts.map +1 -1
  55. package/tools/compute/vms/list-compute-vms.js +12 -3
  56. package/tools/compute/vms/list-compute-vms.js.map +1 -1
  57. package/tools/compute/vms/list-compute-vms.mjs +12 -3
  58. package/tools/compute/vms/list-compute-vms.mjs.map +1 -1
  59. package/tools/compute/vms/volumes/list-vms-compute-volumes.d.mts.map +1 -1
  60. package/tools/compute/vms/volumes/list-vms-compute-volumes.d.ts.map +1 -1
  61. package/tools/compute/vms/volumes/list-vms-compute-volumes.js +11 -2
  62. package/tools/compute/vms/volumes/list-vms-compute-volumes.js.map +1 -1
  63. package/tools/compute/vms/volumes/list-vms-compute-volumes.mjs +11 -2
  64. package/tools/compute/vms/volumes/list-vms-compute-volumes.mjs.map +1 -1
  65. package/tools/compute/volumes/list-compute-volumes.d.mts.map +1 -1
  66. package/tools/compute/volumes/list-compute-volumes.d.ts.map +1 -1
  67. package/tools/compute/volumes/list-compute-volumes.js +12 -3
  68. package/tools/compute/volumes/list-compute-volumes.js.map +1 -1
  69. package/tools/compute/volumes/list-compute-volumes.mjs +12 -3
  70. package/tools/compute/volumes/list-compute-volumes.mjs.map +1 -1
  71. package/tools/networking/connect/connections/list-connect-networking-connections.d.mts.map +1 -1
  72. package/tools/networking/connect/connections/list-connect-networking-connections.d.ts.map +1 -1
  73. package/tools/networking/connect/connections/list-connect-networking-connections.js +12 -3
  74. package/tools/networking/connect/connections/list-connect-networking-connections.js.map +1 -1
  75. package/tools/networking/connect/connections/list-connect-networking-connections.mjs +12 -3
  76. package/tools/networking/connect/connections/list-connect-networking-connections.mjs.map +1 -1
  77. package/tools/networking/connect/routes/list-connect-networking-routes.d.mts.map +1 -1
  78. package/tools/networking/connect/routes/list-connect-networking-routes.d.ts.map +1 -1
  79. package/tools/networking/connect/routes/list-connect-networking-routes.js +12 -3
  80. package/tools/networking/connect/routes/list-connect-networking-routes.js.map +1 -1
  81. package/tools/networking/connect/routes/list-connect-networking-routes.mjs +12 -3
  82. package/tools/networking/connect/routes/list-connect-networking-routes.mjs.map +1 -1
  83. package/tools/networking/firewall-rules/list-networking-firewall-rules.d.mts.map +1 -1
  84. package/tools/networking/firewall-rules/list-networking-firewall-rules.d.ts.map +1 -1
  85. package/tools/networking/firewall-rules/list-networking-firewall-rules.js +11 -2
  86. package/tools/networking/firewall-rules/list-networking-firewall-rules.js.map +1 -1
  87. package/tools/networking/firewall-rules/list-networking-firewall-rules.mjs +11 -2
  88. package/tools/networking/firewall-rules/list-networking-firewall-rules.mjs.map +1 -1
  89. package/tools/networking/vpcs/list-networking-vpcs.d.mts.map +1 -1
  90. package/tools/networking/vpcs/list-networking-vpcs.d.ts.map +1 -1
  91. package/tools/networking/vpcs/list-networking-vpcs.js +12 -3
  92. package/tools/networking/vpcs/list-networking-vpcs.js.map +1 -1
  93. package/tools/networking/vpcs/list-networking-vpcs.mjs +12 -3
  94. package/tools/networking/vpcs/list-networking-vpcs.mjs.map +1 -1
  95. package/tools/operations/list-operations.d.mts.map +1 -1
  96. package/tools/operations/list-operations.d.ts.map +1 -1
  97. package/tools/operations/list-operations.js +12 -3
  98. package/tools/operations/list-operations.js.map +1 -1
  99. package/tools/operations/list-operations.mjs +12 -3
  100. package/tools/operations/list-operations.mjs.map +1 -1
  101. package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.d.mts.map +1 -1
  102. package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.d.ts.map +1 -1
  103. package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.js +13 -4
  104. package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.js.map +1 -1
  105. package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.mjs +13 -4
  106. package/tools/rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains.mjs.map +1 -1
  107. package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.d.mts.map +1 -1
  108. package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.d.ts.map +1 -1
  109. package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.js +12 -3
  110. package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.js.map +1 -1
  111. package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.mjs +12 -3
  112. package/tools/rpc-nodes/dedicated/list-rpc-nodes-dedicated.mjs.map +1 -1
  113. package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.d.mts.map +1 -1
  114. package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.d.ts.map +1 -1
  115. package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.js +13 -4
  116. package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.js.map +1 -1
  117. package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.mjs +13 -4
  118. package/tools/rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains.mjs.map +1 -1
  119. package/tools/rpc-nodes/flex/list-rpc-nodes-flex.d.mts.map +1 -1
  120. package/tools/rpc-nodes/flex/list-rpc-nodes-flex.d.ts.map +1 -1
  121. package/tools/rpc-nodes/flex/list-rpc-nodes-flex.js +12 -3
  122. package/tools/rpc-nodes/flex/list-rpc-nodes-flex.js.map +1 -1
  123. package/tools/rpc-nodes/flex/list-rpc-nodes-flex.mjs +12 -3
  124. package/tools/rpc-nodes/flex/list-rpc-nodes-flex.mjs.map +1 -1
@@ -18,10 +18,18 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_connect_networking_connections',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all Connect Connections\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_connection_list',\n $defs: {\n connect_connection_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/connect_connection'\n }\n }\n },\n required: [ 'items'\n ]\n },\n connect_connection: {\n type: 'object',\n description: 'Connect Connection details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Connect Connection'\n },\n asn: {\n type: 'integer',\n description: 'ASN'\n },\n aws: {\n $ref: '#/$defs/connect_connection_aws_config'\n },\n bandwidth_mbps: {\n $ref: '#/$defs/connect_bandwidth_mbps'\n },\n cidrs: {\n type: 'array',\n description: 'CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n created_at: {\n type: 'string',\n description: 'When the Connect Connection was created',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Connect Connection'\n },\n provider_asn: {\n type: 'integer',\n description: 'Provider ASN'\n },\n provider_cidrs: {\n type: 'array',\n description: 'Provider CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n provider_router_ip: {\n type: 'string',\n description: 'Provider Router IP for the Connect Connection'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n router_ip: {\n type: 'string',\n description: 'Router IP'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the Connect Connection',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the Connect Connection was updated',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'asn',\n 'aws',\n 'bandwidth_mbps',\n 'cidrs',\n 'created_at',\n 'name',\n 'provider_asn',\n 'provider_cidrs',\n 'provider_router_ip',\n 'region',\n 'router_ip',\n 'status',\n 'tags',\n 'updated_at'\n ]\n },\n connect_connection_aws_config: {\n type: 'object',\n description: 'AWS provider configuration',\n properties: {\n region: {\n type: 'string',\n description: 'AWS region where the connection is established'\n }\n },\n required: [ 'region'\n ]\n },\n connect_bandwidth_mbps: {\n type: 'string',\n description: 'Connect Connection speed in Mbps',\n enum: [ 50,\n 200,\n 500,\n 1000,\n 2000\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n },\n resource_status: {\n type: 'string',\n description: 'Status of the resource.',\n enum: [ 'pending',\n 'creating',\n 'updating',\n 'ready',\n 'deleting',\n 'deleted',\n 'error'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all Connect Connections\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_connection_list',\n $defs: {\n connect_connection_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/connect_connection'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n connect_connection: {\n type: 'object',\n description: 'Connect Connection details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Connect Connection'\n },\n asn: {\n type: 'integer',\n description: 'ASN'\n },\n aws: {\n $ref: '#/$defs/connect_connection_aws_config'\n },\n bandwidth_mbps: {\n $ref: '#/$defs/connect_bandwidth_mbps'\n },\n cidrs: {\n type: 'array',\n description: 'CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n created_at: {\n type: 'string',\n description: 'When the Connect Connection was created',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Connect Connection'\n },\n provider_asn: {\n type: 'integer',\n description: 'Provider ASN'\n },\n provider_cidrs: {\n type: 'array',\n description: 'Provider CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n provider_router_ip: {\n type: 'string',\n description: 'Provider Router IP for the Connect Connection'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n router_ip: {\n type: 'string',\n description: 'Router IP'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the Connect Connection',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the Connect Connection was updated',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'asn',\n 'aws',\n 'bandwidth_mbps',\n 'cidrs',\n 'created_at',\n 'name',\n 'provider_asn',\n 'provider_cidrs',\n 'provider_router_ip',\n 'region',\n 'router_ip',\n 'status',\n 'tags',\n 'updated_at'\n ]\n },\n connect_connection_aws_config: {\n type: 'object',\n description: 'AWS provider configuration',\n properties: {\n region: {\n type: 'string',\n description: 'AWS region where the connection is established'\n }\n },\n required: [ 'region'\n ]\n },\n connect_bandwidth_mbps: {\n type: 'string',\n description: 'Connect Connection speed in Mbps',\n enum: [ 50,\n 200,\n 500,\n 1000,\n 2000\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n },\n resource_status: {\n type: 'string',\n description: 'Status of the resource.',\n enum: [ 'pending',\n 'creating',\n 'updating',\n 'ready',\n 'deleting',\n 'deleted',\n 'error'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,10 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
40
- const { jq_filter } = args as any;
41
- return asTextContentResult(
42
- await maybeFilter(jq_filter, await client.networking.connect.connections.list()),
43
- );
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.networking.connect.connections.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
44
51
  };
45
52
 
46
53
  export default { metadata, tool, handler };
@@ -18,10 +18,18 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_connect_networking_routes',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all supported routes with regions for Connect.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_route_list',\n $defs: {\n connect_route_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/connect_route'\n }\n }\n },\n required: [ 'items'\n ]\n },\n connect_route: {\n type: 'object',\n description: 'Routes supported for Connect.',\n properties: {\n nirvana_region: {\n $ref: '#/$defs/region_name'\n },\n provider: {\n type: 'string',\n description: 'Provider name.'\n },\n provider_region: {\n type: 'string',\n description: 'Provider region name.'\n }\n },\n required: [ 'nirvana_region',\n 'provider',\n 'provider_region'\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all supported routes with regions for Connect.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_route_list',\n $defs: {\n connect_route_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/connect_route'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n connect_route: {\n type: 'object',\n description: 'Routes supported for Connect.',\n properties: {\n nirvana_region: {\n $ref: '#/$defs/region_name'\n },\n provider: {\n type: 'string',\n description: 'Provider name.'\n },\n provider_region: {\n type: 'string',\n description: 'Provider region name.'\n }\n },\n required: [ 'nirvana_region',\n 'provider',\n 'provider_region'\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,8 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  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.networking.connect.routes.list()));
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.networking.connect.routes.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
42
51
  };
43
52
 
44
53
  export default { metadata, tool, handler };
@@ -18,13 +18,21 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_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\nList all firewall rules\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/firewall_rule_list',\n $defs: {\n firewall_rule_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/firewall_rule'\n }\n }\n },\n required: [ 'items'\n ]\n },\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 tags: {\n type: 'array',\n description: 'Tags to attach to the Firewall Rule.',\n items: {\n type: 'string'\n }\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 'tags',\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```",
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 firewall rules\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/firewall_rule_list',\n $defs: {\n firewall_rule_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/firewall_rule'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\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 tags: {\n type: 'array',\n description: 'Tags to attach to the Firewall Rule.',\n items: {\n type: 'string'\n }\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 'tags',\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 pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
25
  vpc_id: {
26
26
  type: 'string',
27
27
  },
28
+ cursor: {
29
+ type: 'string',
30
+ description: 'Pagination cursor returned by a previous request',
31
+ },
32
+ limit: {
33
+ type: 'integer',
34
+ description: 'Maximum number of items to return',
35
+ },
28
36
  jq_filter: {
29
37
  type: 'string',
30
38
  title: 'jq Filter',
@@ -41,9 +49,8 @@ export const tool: Tool = {
41
49
 
42
50
  export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
43
51
  const { vpc_id, jq_filter, ...body } = args as any;
44
- return asTextContentResult(
45
- await maybeFilter(jq_filter, await client.networking.firewallRules.list(vpc_id)),
46
- );
52
+ const response = await client.networking.firewallRules.list(vpc_id, body).asResponse();
53
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
47
54
  };
48
55
 
49
56
  export default { metadata, tool, handler };
@@ -18,10 +18,18 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_networking_vpcs',
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 VPCs\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/vpc_list',\n $defs: {\n vpc_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/vpc'\n }\n }\n },\n required: [ 'items'\n ]\n },\n vpc: {\n type: 'object',\n description: 'VPC details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the VPC.'\n },\n created_at: {\n type: 'string',\n description: 'When the VPC was created.',\n format: 'date-time'\n },\n firewall_rule_ids: {\n type: 'array',\n description: 'IDs of the Firewall Rules associated with the VPC.',\n items: {\n type: 'string'\n }\n },\n name: {\n type: 'string',\n description: 'Name of the VPC.'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n subnet: {\n $ref: '#/$defs/subnet'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the VPC.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the VPC was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'firewall_rule_ids',\n 'name',\n 'region',\n 'status',\n 'subnet',\n 'tags',\n 'updated_at'\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 subnet: {\n type: 'object',\n description: 'Subnet of the VPC.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Subnet.'\n },\n cidr: {\n type: 'string',\n description: 'CIDR block for the Subnet.'\n },\n created_at: {\n type: 'string',\n description: 'When the Subnet was created.',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Subnet.'\n },\n updated_at: {\n type: 'string',\n description: 'When the Subnet was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'cidr',\n 'created_at',\n 'name',\n 'updated_at'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all VPCs\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/vpc_list',\n $defs: {\n vpc_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/vpc'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n vpc: {\n type: 'object',\n description: 'VPC details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the VPC.'\n },\n created_at: {\n type: 'string',\n description: 'When the VPC was created.',\n format: 'date-time'\n },\n firewall_rule_ids: {\n type: 'array',\n description: 'IDs of the Firewall Rules associated with the VPC.',\n items: {\n type: 'string'\n }\n },\n name: {\n type: 'string',\n description: 'Name of the VPC.'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n subnet: {\n $ref: '#/$defs/subnet'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the VPC.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the VPC was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'firewall_rule_ids',\n 'name',\n 'region',\n 'status',\n 'subnet',\n 'tags',\n 'updated_at'\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 subnet: {\n type: 'object',\n description: 'Subnet of the VPC.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Subnet.'\n },\n cidr: {\n type: 'string',\n description: 'CIDR block for the Subnet.'\n },\n created_at: {\n type: 'string',\n description: 'When the Subnet was created.',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Subnet.'\n },\n updated_at: {\n type: 'string',\n description: 'When the Subnet was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'cidr',\n 'created_at',\n 'name',\n 'updated_at'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,8 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  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.networking.vpcs.list()));
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.networking.vpcs.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
42
51
  };
43
52
 
44
53
  export default { metadata, tool, handler };
@@ -18,10 +18,18 @@ export const metadata: Metadata = {
18
18
  export const tool: Tool = {
19
19
  name: 'list_operations',
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 operations\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/operation_list',\n $defs: {\n operation_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/operation'\n }\n }\n },\n required: [ 'items'\n ]\n },\n operation: {\n type: 'object',\n description: 'Operation details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Operation.'\n },\n created_at: {\n type: 'string',\n description: 'When the Operation was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/operation_kind'\n },\n resource_id: {\n type: 'string',\n description: 'ID of the resource that the Operation is acting on.'\n },\n status: {\n $ref: '#/$defs/operation_status'\n },\n type: {\n $ref: '#/$defs/operation_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Operation was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'resource_id',\n 'status',\n 'type',\n 'updated_at'\n ]\n },\n operation_kind: {\n type: 'string',\n description: 'Kind of Operation.',\n enum: [ 'vm',\n 'volume',\n 'vpc',\n 'firewall_rule'\n ]\n },\n operation_status: {\n type: 'string',\n description: 'Status of the Operation.',\n enum: [ 'pending',\n 'running',\n 'done',\n 'failed',\n 'unknown'\n ]\n },\n operation_type: {\n type: 'string',\n description: 'Type of Operation.',\n enum: [ 'create',\n 'update',\n 'delete',\n 'restart'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all operations\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/operation_list',\n $defs: {\n operation_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/operation'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\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 pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,8 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  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.operations.list()));
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.operations.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
42
51
  };
43
52
 
44
53
  export default { metadata, tool, handler };
@@ -12,16 +12,24 @@ export const metadata: Metadata = {
12
12
  tags: [],
13
13
  httpMethod: 'get',
14
14
  httpPath: '/v1/rpc_nodes/dedicated/blockchains',
15
- operationId: 'list_dedicated_blockchains',
15
+ operationId: 'list_rpc_nodes_dedicated_blockchains',
16
16
  };
17
17
 
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/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 RPC Node Dedicated.',\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```",
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 pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n dedicated_blockchain: {\n type: 'object',\n description: 'Blockchain supported by the RPC Node Dedicated.',\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 pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,10 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
40
- const { jq_filter } = args as any;
41
- return asTextContentResult(
42
- await maybeFilter(jq_filter, await client.rpcNodes.dedicated.blockchains.list()),
43
- );
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.rpcNodes.dedicated.blockchains.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
44
51
  };
45
52
 
46
53
  export default { metadata, tool, handler };
@@ -18,10 +18,18 @@ 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/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 tags: {\n type: 'array',\n description: 'Tags to attach to the RPC Node Dedicated.',\n items: {\n type: 'string'\n }\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 'tags',\n 'updated_at'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all 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 pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\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 tags: {\n type: 'array',\n description: 'Tags to attach to the RPC Node Dedicated.',\n items: {\n type: 'string'\n }\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 'tags',\n 'updated_at'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,8 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  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.rpcNodes.dedicated.list()));
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.rpcNodes.dedicated.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
42
51
  };
43
52
 
44
53
  export default { metadata, tool, handler };
@@ -12,16 +12,24 @@ export const metadata: Metadata = {
12
12
  tags: [],
13
13
  httpMethod: 'get',
14
14
  httpPath: '/v1/rpc_nodes/flex/blockchains',
15
- operationId: 'list_flex_blockchains',
15
+ operationId: 'list_rpc_nodes_flex_blockchains',
16
16
  };
17
17
 
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/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 RPC Node Flex.',\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```",
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 pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n flex_blockchain: {\n type: 'object',\n description: 'Blockchain supported by the RPC Node Flex.',\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 pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,8 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  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.rpcNodes.flex.blockchains.list()));
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.rpcNodes.flex.blockchains.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
42
51
  };
43
52
 
44
53
  export default { metadata, tool, handler };
@@ -18,10 +18,18 @@ 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/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 tags: {\n type: 'array',\n description: 'Tags to attach to the RPC Node Flex.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the RPC Node Flex was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'blockchain',\n 'created_at',\n 'endpoint',\n 'name',\n 'network',\n 'tags',\n 'updated_at'\n ]\n }\n }\n}\n```",
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 pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\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 tags: {\n type: 'array',\n description: 'Tags to attach to the RPC Node Flex.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the RPC Node Flex was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'blockchain',\n 'created_at',\n 'endpoint',\n 'name',\n 'network',\n 'tags',\n 'updated_at'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
+ cursor: {
26
+ type: 'string',
27
+ description: 'Pagination cursor returned by a previous request',
28
+ },
29
+ limit: {
30
+ type: 'integer',
31
+ description: 'Maximum number of items to return',
32
+ },
25
33
  jq_filter: {
26
34
  type: 'string',
27
35
  title: 'jq Filter',
@@ -37,8 +45,9 @@ export const tool: Tool = {
37
45
  };
38
46
 
39
47
  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.rpcNodes.flex.list()));
48
+ const { jq_filter, ...body } = args as any;
49
+ const response = await client.rpcNodes.flex.list(body).asResponse();
50
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
42
51
  };
43
52
 
44
53
  export default { metadata, tool, handler };
@@ -1 +1 @@
1
- {"version":3,"file":"list-api-keys.d.mts","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.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,IAmBlB,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"}
1
+ {"version":3,"file":"list-api-keys.d.mts","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.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,IA2BlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,4EAI3F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAJoC,WAAW,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAM5F,wBAA2C"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-api-keys.d.ts","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.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,IAmBlB,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"}
1
+ {"version":3,"file":"list-api-keys.d.ts","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.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,IA2BlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,4EAI3F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAJoC,WAAW,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAM5F,wBAA2C"}
@@ -14,10 +14,18 @@ exports.metadata = {
14
14
  };
15
15
  exports.tool = {
16
16
  name: 'list_api_keys',
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\nList all API keys for the authenticated user\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/api_key_list',\n $defs: {\n api_key_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/api_key'\n }\n }\n },\n required: [ 'items'\n ]\n },\n api_key: {\n type: 'object',\n description: 'API Key response.',\n properties: {\n id: {\n type: 'string',\n description: 'API Key ID.'\n },\n created_at: {\n type: 'string',\n description: 'When the API Key was created.',\n format: 'date-time'\n },\n expires_at: {\n type: 'string',\n description: 'When the API Key expires and is no longer valid.',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'API Key name.'\n },\n status: {\n type: 'string',\n description: 'Status of the API Key.',\n enum: [ 'active',\n 'inactive',\n 'expired'\n ]\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the API Key.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the API Key was updated.',\n format: 'date-time'\n },\n key: {\n type: 'string',\n description: 'API Key. Only returned on creation.'\n },\n starts_at: {\n type: 'string',\n description: 'When the API Key starts to be valid.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'expires_at',\n 'name',\n 'status',\n 'tags',\n 'updated_at'\n ]\n }\n }\n}\n```",
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\nList all API keys for the authenticated user\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/api_key_list',\n $defs: {\n api_key_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/api_key'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n api_key: {\n type: 'object',\n description: 'API Key response.',\n properties: {\n id: {\n type: 'string',\n description: 'API Key ID.'\n },\n created_at: {\n type: 'string',\n description: 'When the API Key was created.',\n format: 'date-time'\n },\n expires_at: {\n type: 'string',\n description: 'When the API Key expires and is no longer valid.',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'API Key name.'\n },\n status: {\n type: 'string',\n description: 'Status of the API Key.',\n enum: [ 'active',\n 'inactive',\n 'expired'\n ]\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the API Key.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the API Key was updated.',\n format: 'date-time'\n },\n key: {\n type: 'string',\n description: 'API Key. Only returned on creation.'\n },\n starts_at: {\n type: 'string',\n description: 'When the API Key starts to be valid.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'expires_at',\n 'name',\n 'status',\n 'tags',\n 'updated_at'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
18
18
  inputSchema: {
19
19
  type: 'object',
20
20
  properties: {
21
+ cursor: {
22
+ type: 'string',
23
+ description: 'Pagination cursor returned by a previous request',
24
+ },
25
+ limit: {
26
+ type: 'integer',
27
+ description: 'Maximum number of items to return',
28
+ },
21
29
  jq_filter: {
22
30
  type: 'string',
23
31
  title: 'jq Filter',
@@ -31,8 +39,9 @@ exports.tool = {
31
39
  },
32
40
  };
33
41
  const handler = async (client, args) => {
34
- const { jq_filter } = args;
35
- return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(jq_filter, await client.apiKeys.list()));
42
+ const { jq_filter, ...body } = args;
43
+ const response = await client.apiKeys.list(body).asResponse();
44
+ return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(jq_filter, await response.json()));
36
45
  };
37
46
  exports.handler = handler;
38
47
  exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
@@ -1 +1 @@
1
- {"version":3,"file":"list-api-keys.js","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,mEAAkE;AAClE,iEAAsF;AAKzE,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,omEAAomE;IACtmE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAmB,EAAE,IAAyC,EAAE,EAAE;IAC9F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAW,CAAC;IAClC,OAAO,IAAA,2BAAmB,EAAC,MAAM,IAAA,uBAAW,EAAC,SAAS,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAHW,QAAA,OAAO,WAGlB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"list-api-keys.js","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,mEAAkE;AAClE,iEAAsF;AAKzE,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,4mFAA4mF;IAC9mF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,mCAAmC;aACjD;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAmB,EAAE,IAAyC,EAAE,EAAE;IAC9F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9D,OAAO,IAAA,2BAAmB,EAAC,MAAM,IAAA,uBAAW,EAAC,SAAS,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
@@ -11,10 +11,18 @@ export const metadata = {
11
11
  };
12
12
  export const tool = {
13
13
  name: 'list_api_keys',
14
- 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\nList all API keys for the authenticated user\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/api_key_list',\n $defs: {\n api_key_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/api_key'\n }\n }\n },\n required: [ 'items'\n ]\n },\n api_key: {\n type: 'object',\n description: 'API Key response.',\n properties: {\n id: {\n type: 'string',\n description: 'API Key ID.'\n },\n created_at: {\n type: 'string',\n description: 'When the API Key was created.',\n format: 'date-time'\n },\n expires_at: {\n type: 'string',\n description: 'When the API Key expires and is no longer valid.',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'API Key name.'\n },\n status: {\n type: 'string',\n description: 'Status of the API Key.',\n enum: [ 'active',\n 'inactive',\n 'expired'\n ]\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the API Key.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the API Key was updated.',\n format: 'date-time'\n },\n key: {\n type: 'string',\n description: 'API Key. Only returned on creation.'\n },\n starts_at: {\n type: 'string',\n description: 'When the API Key starts to be valid.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'expires_at',\n 'name',\n 'status',\n 'tags',\n 'updated_at'\n ]\n }\n }\n}\n```",
14
+ 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\nList all API keys for the authenticated user\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/api_key_list',\n $defs: {\n api_key_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/api_key'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n api_key: {\n type: 'object',\n description: 'API Key response.',\n properties: {\n id: {\n type: 'string',\n description: 'API Key ID.'\n },\n created_at: {\n type: 'string',\n description: 'When the API Key was created.',\n format: 'date-time'\n },\n expires_at: {\n type: 'string',\n description: 'When the API Key expires and is no longer valid.',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'API Key name.'\n },\n status: {\n type: 'string',\n description: 'Status of the API Key.',\n enum: [ 'active',\n 'inactive',\n 'expired'\n ]\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the API Key.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the API Key was updated.',\n format: 'date-time'\n },\n key: {\n type: 'string',\n description: 'API Key. Only returned on creation.'\n },\n starts_at: {\n type: 'string',\n description: 'When the API Key starts to be valid.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'expires_at',\n 'name',\n 'status',\n 'tags',\n 'updated_at'\n ]\n },\n pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
15
15
  inputSchema: {
16
16
  type: 'object',
17
17
  properties: {
18
+ cursor: {
19
+ type: 'string',
20
+ description: 'Pagination cursor returned by a previous request',
21
+ },
22
+ limit: {
23
+ type: 'integer',
24
+ description: 'Maximum number of items to return',
25
+ },
18
26
  jq_filter: {
19
27
  type: 'string',
20
28
  title: 'jq Filter',
@@ -28,8 +36,9 @@ export const tool = {
28
36
  },
29
37
  };
30
38
  export const handler = async (client, args) => {
31
- const { jq_filter } = args;
32
- return asTextContentResult(await maybeFilter(jq_filter, await client.apiKeys.list()));
39
+ const { jq_filter, ...body } = args;
40
+ const response = await client.apiKeys.list(body).asResponse();
41
+ return asTextContentResult(await maybeFilter(jq_filter, await response.json()));
33
42
  };
34
43
  export default { metadata, tool, handler };
35
44
  //# sourceMappingURL=list-api-keys.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-api-keys.mjs","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE,MAAM,qCAAqC;OAC1D,EAAY,mBAAmB,EAAE,MAAM,uCAAuC;AAKrF,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,omEAAomE;IACtmE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAmB,EAAE,IAAyC,EAAE,EAAE;IAC9F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAW,CAAC;IAClC,OAAO,mBAAmB,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"list-api-keys.mjs","sourceRoot":"","sources":["../../src/tools/api-keys/list-api-keys.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE,MAAM,qCAAqC;OAC1D,EAAY,mBAAmB,EAAE,MAAM,uCAAuC;AAKrF,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,4mFAA4mF;IAC9mF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,mCAAmC;aACjD;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAmB,EAAE,IAAyC,EAAE,EAAE;IAC9F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9D,OAAO,mBAAmB,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-compute-vms.d.mts","sourceRoot":"","sources":["../../../src/tools/compute/vms/list-compute-vms.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,IAmBlB,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"}
1
+ {"version":3,"file":"list-compute-vms.d.mts","sourceRoot":"","sources":["../../../src/tools/compute/vms/list-compute-vms.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,IA2BlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,4EAI3F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAJoC,WAAW,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAM5F,wBAA2C"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-compute-vms.d.ts","sourceRoot":"","sources":["../../../src/tools/compute/vms/list-compute-vms.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,IAmBlB,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"}
1
+ {"version":3,"file":"list-compute-vms.d.ts","sourceRoot":"","sources":["../../../src/tools/compute/vms/list-compute-vms.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,IA2BlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,4EAI3F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAJoC,WAAW,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAM5F,wBAA2C"}
@@ -14,10 +14,18 @@ exports.metadata = {
14
14
  };
15
15
  exports.tool = {
16
16
  name: 'list_compute_vms',
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\nList all VMs\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/vm_list',\n $defs: {\n vm_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/vm'\n }\n }\n },\n required: [ 'items'\n ]\n },\n vm: {\n type: 'object',\n description: 'VM details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the VM.'\n },\n boot_volume_id: {\n type: 'string',\n description: 'ID of the boot volume attached to the VM.'\n },\n cpu_config: {\n $ref: '#/$defs/cpu_config'\n },\n created_at: {\n type: 'string',\n description: 'When the VM was created.',\n format: 'date-time'\n },\n data_volume_ids: {\n type: 'array',\n description: 'IDs of the data volumes attached to the VM.',\n items: {\n type: 'string'\n }\n },\n memory_config: {\n $ref: '#/$defs/memory_config'\n },\n name: {\n type: 'string',\n description: 'Name of the VM.'\n },\n private_ip: {\n type: 'string',\n description: 'Private IP of the VM.'\n },\n public_ip: {\n type: 'string',\n description: 'Public IP of the VM.'\n },\n public_ip_enabled: {\n type: 'boolean',\n description: 'Whether the public IP is enabled for the VM.'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n subnet_id: {\n type: 'string',\n description: 'ID of the subnet the VM is in.'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the VM.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the VM was updated.',\n format: 'date-time'\n },\n vpc_id: {\n type: 'string',\n description: 'ID of the VPC the VM is in.'\n },\n vpc_name: {\n type: 'string',\n description: 'Name of the VPC the VM is in.'\n }\n },\n required: [ 'id',\n 'boot_volume_id',\n 'cpu_config',\n 'created_at',\n 'data_volume_ids',\n 'memory_config',\n 'name',\n 'private_ip',\n 'public_ip',\n 'public_ip_enabled',\n 'region',\n 'status',\n 'subnet_id',\n 'tags',\n 'updated_at',\n 'vpc_id',\n 'vpc_name'\n ]\n },\n cpu_config: {\n type: 'object',\n description: 'CPU configuration for the VM.',\n properties: {\n vcpu: {\n type: 'integer',\n description: 'Number of virtual CPUs.'\n }\n },\n required: [ 'vcpu'\n ]\n },\n memory_config: {\n type: 'object',\n description: 'Memory configuration for the VM.',\n properties: {\n size: {\n type: 'integer',\n description: 'Size of the memory in GB.'\n }\n },\n required: [ 'size'\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```",
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\nList all VMs\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/vm_list',\n $defs: {\n vm_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/vm'\n }\n },\n pagination: {\n $ref: '#/$defs/pagination'\n }\n },\n required: [ 'items',\n 'pagination'\n ]\n },\n vm: {\n type: 'object',\n description: 'VM details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the VM.'\n },\n boot_volume_id: {\n type: 'string',\n description: 'ID of the boot volume attached to the VM.'\n },\n cpu_config: {\n $ref: '#/$defs/cpu_config'\n },\n created_at: {\n type: 'string',\n description: 'When the VM was created.',\n format: 'date-time'\n },\n data_volume_ids: {\n type: 'array',\n description: 'IDs of the data volumes attached to the VM.',\n items: {\n type: 'string'\n }\n },\n memory_config: {\n $ref: '#/$defs/memory_config'\n },\n name: {\n type: 'string',\n description: 'Name of the VM.'\n },\n private_ip: {\n type: 'string',\n description: 'Private IP of the VM.'\n },\n public_ip: {\n type: 'string',\n description: 'Public IP of the VM.'\n },\n public_ip_enabled: {\n type: 'boolean',\n description: 'Whether the public IP is enabled for the VM.'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n subnet_id: {\n type: 'string',\n description: 'ID of the subnet the VM is in.'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the VM.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the VM was updated.',\n format: 'date-time'\n },\n vpc_id: {\n type: 'string',\n description: 'ID of the VPC the VM is in.'\n },\n vpc_name: {\n type: 'string',\n description: 'Name of the VPC the VM is in.'\n }\n },\n required: [ 'id',\n 'boot_volume_id',\n 'cpu_config',\n 'created_at',\n 'data_volume_ids',\n 'memory_config',\n 'name',\n 'private_ip',\n 'public_ip',\n 'public_ip_enabled',\n 'region',\n 'status',\n 'subnet_id',\n 'tags',\n 'updated_at',\n 'vpc_id',\n 'vpc_name'\n ]\n },\n cpu_config: {\n type: 'object',\n description: 'CPU configuration for the VM.',\n properties: {\n vcpu: {\n type: 'integer',\n description: 'Number of virtual CPUs.'\n }\n },\n required: [ 'vcpu'\n ]\n },\n memory_config: {\n type: 'object',\n description: 'Memory configuration for the VM.',\n properties: {\n size: {\n type: 'integer',\n description: 'Size of the memory in GB.'\n }\n },\n required: [ 'size'\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 pagination: {\n type: 'object',\n description: 'Pagination response details.',\n properties: {\n next_cursor: {\n type: 'string'\n },\n previous_cursor: {\n type: 'string'\n },\n total_count: {\n type: 'integer'\n }\n },\n required: [ 'next_cursor',\n 'previous_cursor',\n 'total_count'\n ]\n }\n }\n}\n```",
18
18
  inputSchema: {
19
19
  type: 'object',
20
20
  properties: {
21
+ cursor: {
22
+ type: 'string',
23
+ description: 'Pagination cursor returned by a previous request',
24
+ },
25
+ limit: {
26
+ type: 'integer',
27
+ description: 'Maximum number of items to return',
28
+ },
21
29
  jq_filter: {
22
30
  type: 'string',
23
31
  title: 'jq Filter',
@@ -31,8 +39,9 @@ exports.tool = {
31
39
  },
32
40
  };
33
41
  const handler = async (client, args) => {
34
- const { jq_filter } = args;
35
- return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(jq_filter, await client.compute.vms.list()));
42
+ const { jq_filter, ...body } = args;
43
+ const response = await client.compute.vms.list(body).asResponse();
44
+ return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(jq_filter, await response.json()));
36
45
  };
37
46
  exports.handler = handler;
38
47
  exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };