Skip to main content
Glama
go.ts2.43 kB
import { z } from "zod"; import fs from "fs/promises"; import path from "path"; // --- Tools --- export const analyzeGoModSchema = { name: "analyze_go_mod", description: "Parse go.mod file to understand module dependencies.", inputSchema: z.object({ filePath: z.string().describe("Path to go.mod file"), }), }; export const goStructHelperSchema = { name: "go_struct_helper", description: "Generate Go struct definitions.", inputSchema: z.object({ name: z.string().describe("Struct name"), fields: z.array(z.object({ name: z.string(), type: z.string(), jsonTag: z.string().optional() })).describe("List of fields"), }), }; // --- Handlers --- export async function analyzeGoModHandler(args: { filePath: string }) { try { const content = await fs.readFile(args.filePath, "utf-8"); const moduleMatch = content.match(/^module\s+(.+)$/m); const goVersionMatch = content.match(/^go\s+(.+)$/m); const requireBlock = content.match(/require\s+\(([\s\S]*?)\)/); const requires = requireBlock ? requireBlock[1] .split("\n") .map(l => l.trim()) .filter(l => l && !l.startsWith("//")) .map(l => l.split(" ")[0]) : []; return { content: [{ type: "text", text: JSON.stringify({ module: moduleMatch ? moduleMatch[1] : "unknown", goVersion: goVersionMatch ? goVersionMatch[1] : "unknown", dependencies: requires }, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error reading go.mod: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } export async function goStructHelperHandler(args: { name: string, fields: { name: string, type: string, jsonTag?: string }[] }) { const { name, fields } = args; let struct = `type ${name} struct {\n`; for (const field of fields) { struct += ` ${field.name} ${field.type}`; if (field.jsonTag) { struct += ` \`json:"${field.jsonTag}"\``; } struct += "\n"; } struct += "}"; return { content: [{ type: "text", text: struct }] }; }

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/millsydotdev/Code-MCP'

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