From f747261440ef58dff7610330a3495b950fad96ca Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 29 Apr 2025 18:14:35 +0100 Subject: [PATCH 1/3] fix: add atlas instance size --- src/tools/atlas/read/inspectCluster.ts | 31 +++++++++++++++++++--- src/tools/atlas/read/listClusters.ts | 36 +++++++++++++++++++++++--- 2 files changed, 60 insertions(+), 7 deletions(-) diff --git a/src/tools/atlas/read/inspectCluster.ts b/src/tools/atlas/read/inspectCluster.ts index 7d18a1c2..18997469 100644 --- a/src/tools/atlas/read/inspectCluster.ts +++ b/src/tools/atlas/read/inspectCluster.ts @@ -31,13 +31,38 @@ export class InspectClusterTool extends AtlasToolBase { throw new Error("Cluster not found"); } + const regionConfigs = (cluster.replicationSpecs || []) + .map( + (replicationSpec) => + (replicationSpec.regionConfigs || []) as { + providerName: string; + electableSpecs?: { + instanceSize: string; + }; + readOnlySpecs?: { + instanceSize: string; + }; + }[] + ) + .flat() + .map((regionConfig) => { + return { + providerName: regionConfig.providerName, + instanceSize: regionConfig.electableSpecs?.instanceSize || regionConfig.readOnlySpecs?.instanceSize, + }; + }); + + const instanceSize = (regionConfigs.length <= 0 ? undefined : regionConfigs[0].instanceSize) || "UNKNOWN"; + + const clusterInstaceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; + return { content: [ { type: "text", - text: `Cluster Name | State | MongoDB Version | Connection String -----------------|----------------|----------------|----------------|---------------- -${cluster.name} | ${cluster.stateName} | ${cluster.mongoDBVersion || "N/A"} | ${cluster.connectionStrings?.standard || "N/A"}`, + text: `Cluster Name | Cluster Type | Tier | State | MongoDB Version | Connection String +----------------|----------------|----------------|----------------|----------------|---------------- +${cluster.name} | ${clusterInstaceType} | ${clusterInstaceType == "DEDICATED" ? instanceSize : "N/A"} | ${cluster.stateName} | ${cluster.mongoDBVersion || "N/A"} | ${cluster.connectionStrings?.standardSrv || cluster.connectionStrings?.standard || "N/A"}`, }, ], }; diff --git a/src/tools/atlas/read/listClusters.ts b/src/tools/atlas/read/listClusters.ts index 8f6d7c4c..262526a0 100644 --- a/src/tools/atlas/read/listClusters.ts +++ b/src/tools/atlas/read/listClusters.ts @@ -79,9 +79,37 @@ ${rows}`, } const rows = clusters.results .map((cluster) => { - const connectionString = cluster.connectionStrings?.standard || "N/A"; + const connectionString = + cluster.connectionStrings?.standardSrv || cluster.connectionStrings?.standard || "N/A"; const mongoDBVersion = cluster.mongoDBVersion || "N/A"; - return `${cluster.name} | ${cluster.stateName} | ${mongoDBVersion} | ${connectionString}`; + const regionConfigs = (cluster.replicationSpecs || []) + .map( + (replicationSpec) => + (replicationSpec.regionConfigs || []) as { + providerName: string; + electableSpecs?: { + instanceSize: string; + }; + readOnlySpecs?: { + instanceSize: string; + }; + }[] + ) + .flat() + .map((regionConfig) => { + return { + providerName: regionConfig.providerName, + instanceSize: + regionConfig.electableSpecs?.instanceSize || regionConfig.readOnlySpecs?.instanceSize, + }; + }); + + const instanceSize = + (regionConfigs.length <= 0 ? undefined : regionConfigs[0].instanceSize) || "UNKNOWN"; + + const clusterInstaceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; + + return `${cluster.name} | ${clusterInstaceType} | ${clusterInstaceType == "DEDICATED" ? instanceSize : "N/A"} | ${cluster.stateName} | ${mongoDBVersion} | ${connectionString}`; }) .join("\n"); return { @@ -92,8 +120,8 @@ ${rows}`, }, { type: "text", - text: `Cluster Name | State | MongoDB Version | Connection String -----------------|----------------|----------------|----------------|---------------- + text: `Cluster Name | Cluster Type | Tier | State | MongoDB Version | Connection String +----------------|----------------|----------------|----------------|----------------|---------------- ${rows}`, }, ], From b8eb3ac4905adfd96a0831801075fe477e7c2e03 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 29 Apr 2025 18:17:11 +0100 Subject: [PATCH 2/3] fix: var name --- src/tools/atlas/read/listClusters.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/atlas/read/listClusters.ts b/src/tools/atlas/read/listClusters.ts index 262526a0..c5272055 100644 --- a/src/tools/atlas/read/listClusters.ts +++ b/src/tools/atlas/read/listClusters.ts @@ -107,9 +107,9 @@ ${rows}`, const instanceSize = (regionConfigs.length <= 0 ? undefined : regionConfigs[0].instanceSize) || "UNKNOWN"; - const clusterInstaceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; + const clusterInstanceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; - return `${cluster.name} | ${clusterInstaceType} | ${clusterInstaceType == "DEDICATED" ? instanceSize : "N/A"} | ${cluster.stateName} | ${mongoDBVersion} | ${connectionString}`; + return `${cluster.name} | ${clusterInstanceType} | ${clusterInstanceType == "DEDICATED" ? instanceSize : "N/A"} | ${cluster.stateName} | ${mongoDBVersion} | ${connectionString}`; }) .join("\n"); return { From 4ed4cc6db828074c9ef20835f12c0d131831c324 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 29 Apr 2025 18:17:50 +0100 Subject: [PATCH 3/3] fix: var name --- src/tools/atlas/read/inspectCluster.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/atlas/read/inspectCluster.ts b/src/tools/atlas/read/inspectCluster.ts index 18997469..41559f38 100644 --- a/src/tools/atlas/read/inspectCluster.ts +++ b/src/tools/atlas/read/inspectCluster.ts @@ -54,7 +54,7 @@ export class InspectClusterTool extends AtlasToolBase { const instanceSize = (regionConfigs.length <= 0 ? undefined : regionConfigs[0].instanceSize) || "UNKNOWN"; - const clusterInstaceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; + const clusterInstanceType = instanceSize == "M0" ? "FREE" : "DEDICATED"; return { content: [ @@ -62,7 +62,7 @@ export class InspectClusterTool extends AtlasToolBase { type: "text", text: `Cluster Name | Cluster Type | Tier | State | MongoDB Version | Connection String ----------------|----------------|----------------|----------------|----------------|---------------- -${cluster.name} | ${clusterInstaceType} | ${clusterInstaceType == "DEDICATED" ? instanceSize : "N/A"} | ${cluster.stateName} | ${cluster.mongoDBVersion || "N/A"} | ${cluster.connectionStrings?.standardSrv || cluster.connectionStrings?.standard || "N/A"}`, +${cluster.name} | ${clusterInstanceType} | ${clusterInstanceType == "DEDICATED" ? instanceSize : "N/A"} | ${cluster.stateName} | ${cluster.mongoDBVersion || "N/A"} | ${cluster.connectionStrings?.standardSrv || cluster.connectionStrings?.standard || "N/A"}`, }, ], };