import { Tool } from '@modelcontextprotocol/server'; import { KubernetesClient } from '../../kubernetes/KubernetesClient.js'; import { HelmBaseTool, HelmCommonSchemas, executeHelmCommand } from './BaseTool.js'; /** * Get notes for a Helm release */ export class HelmGetNotesTool implements HelmBaseTool { tool: Tool = { name: 'helm_get_notes', description: 'Get the notes for a named release (similar to `helm get notes`)', inputSchema: { type: 'object', properties: { releaseName: HelmCommonSchemas.releaseName, namespace: HelmCommonSchemas.namespace, revision: HelmCommonSchemas.revision, }, required: ['releaseName'], }, }; async execute(params: any, _client?: KubernetesClient): Promise { try { const args = ['get', 'notes', params.releaseName]; // Add namespace parameter if (params.namespace) { args.push('--namespace', params.namespace); } // Add revision parameter if (params.revision) { args.push('--revision', params.revision.toString()); } const result = await executeHelmCommand(args); return result; } catch (error: any) { throw new Error( `Failed to get notes for Helm release '${params.releaseName}': ${error.message}`, ); } } }