Skip to main content
Glama
hd-deman

ArtifactHub MCP Server

by hd-deman

helm-chart-template

Retrieve template file content from Helm charts on Artifact Hub by specifying repository, chart name, and exact filename to analyze Kubernetes package configurations.

Instructions

Get the content of a template file from a Helm chart in Artifact Hub

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chartRepoYesThe Helm chart repository name
chartNameYesThe Helm chart name
filenameYesExact filename (full path) to filter templates by (case-sensitive)
versionNoThe chart version (optional, defaults to latest)

Implementation Reference

  • Registration and implementation handler for the 'helm-chart-template' tool.
    export function registerTemplateTool(server: McpServer) {
    	return server.tool(
    		"helm-chart-template",
    		"Get the content of a template file from a Helm chart in Artifact Hub",
    		{
    			chartRepo: z.string().describe("The Helm chart repository name"),
    			chartName: z.string().describe("The Helm chart name"),
    			filename: z
    				.string()
    				.describe(
    					"Exact filename (full path) to filter templates by (case-sensitive)"
    				),
    			version: z
    				.string()
    				.optional()
    				.describe("The chart version (optional, defaults to latest)"),
    		},
    		async ({ chartRepo, chartName, filename, version }: TemplatesParams) => {
    			try {
    				let packageId: string;
    				let chartVersion: string;
    
    				// First get the chart info
    				const chartInfo = await getChartInfo(chartRepo, chartName);
    				packageId = chartInfo.package_id;
    
    				// If version is not provided, use the latest version
    				chartVersion = version || chartInfo.version;
    
    				// Get the templates
    				const templatesResult = await getChartTemplates(
    					packageId,
    					chartVersion
    				);
    
    				// Filter templates by exact filename match
    				const filteredTemplates = templatesResult.templates.filter(
    					(template) => template.name === filename
    				);
    
    				// Format the response
    				const formattedResponse = filteredTemplates
    					.map((template) => {
    						return `--- Template: ${template.name} ---\n${template.content}\n\n`;
    					})
    					.join("");
    
    				return {
    					content: [
    						{
    							type: "text",
    							text:
    								formattedResponse ||
    								"No matching templates found for this chart",
    						},
    					],
    				};
    			} catch (error) {
    				return {
    					content: [
    						{
    							type: "text",
    							text: `Error retrieving templates: ${(error as Error).message}`,
    						},
    					],
    				};
    			}
    		}
    	);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hd-deman/artifacthub-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server