Skip to main content
Glama

inspect_minestom_build

Analyze Minestom workspace build configurations to identify dependencies, plugins, wrapper commands, and variables from Gradle or Maven files.

Instructions

Use this when you want Gradle or Maven specific interpretation for a Minestom workspace, including dependencies, plugins, wrapper commands, and variables from build files or version catalogs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repoRootNoAbsolute or relative path to the Minestom workspace to inspect. Defaults to the current working directory.

Implementation Reference

  • The core logic for inspecting a Minestom build, collecting build files, detecting build tools, and parsing module structures.
    export async function inspectMinestomBuild(repoRootInput?: string) {
    	const repoRoot = path.resolve(repoRootInput ?? process.cwd());
    	const buildFiles = await collectBuildFiles(repoRoot);
    	const wrapperFiles = await collectWrapperFiles(repoRoot);
    	const moduleMap = new Map<string, BuildTextFile[]>();
    
    	for (const file of buildFiles) {
    		const moduleRoot = resolveModuleRoot(file.relativePath);
    		const existing = moduleMap.get(moduleRoot) ?? [];
    		existing.push(file);
    		moduleMap.set(moduleRoot, existing);
    	}
    
    	const modules = Array.from(moduleMap.entries())
    		.map(([moduleRoot, files]) => {
    			const moduleWrapperFiles = wrapperFiles.filter((wrapperFile) => {
    				return moduleRoot === "."
    					? !wrapperFile.includes("/")
    					: wrapperFile.startsWith(`${moduleRoot}/`);
    			});
    			const buildTool = detectBuildTool(files.map((file) => file.relativePath));
    
    			if (buildTool === "gradle") {
    				return createGradleModule(moduleRoot, files, moduleWrapperFiles);
    			}
    
    			if (buildTool === "maven") {
    				return createMavenModule(moduleRoot, files, moduleWrapperFiles);
    			}
    
    			return {
    				buildFiles: files.map((file) => file.relativePath),
    				buildTool: "unknown" as const,
    				commands: [],
    				dependencies: [],
    				moduleRoot,
    				notes: [
    					"Build files were detected, but they did not resolve cleanly to a Gradle or Maven module.",
    				],
    				plugins: [],
    				variables: [],
    				wrapperFiles: moduleWrapperFiles,
    			};
    		})
    		.sort((left, right) => left.moduleRoot.localeCompare(right.moduleRoot));
    
    	const notes = [];
    	const primaryModuleRoot = modules.find(
    		(module) => module.buildTool !== "unknown",
    	)?.moduleRoot;
    
    	if (modules.length === 0) {
    		notes.push(
    			"No Gradle or Maven build files were detected in the inspected directory tree.",
    		);
    	}
    
    	if (
    		modules.some(
    			(module) => module.buildTool === "gradle" && module.versionCatalog,
    		)
    	) {
    		notes.push(
    			"Gradle version catalogs are parsed from `gradle/libs.versions.toml` when present.",
    		);
    	}
    
    	if (modules.some((module) => module.buildTool === "maven")) {
    		notes.push(
    			"Maven parsing includes pom dependencies, plugins, properties, and wrapper-aware command suggestions.",
    		);
    	}
    
    	return minestomBuildInspectionSchema.parse({
    		modules,
    		notes,
    		primaryModuleRoot,
    		repoRoot,
    	});
    }
  • Registration of the 'inspect_minestom_build' MCP tool using TanStackServerTool.
    export const inspectMinestomBuildTool: TanStackServerTool = toolDefinition({
    	description:
    		"Use this when you want Gradle or Maven specific interpretation for a Minestom workspace, including dependencies, plugins, wrapper commands, and variables from build files or version catalogs.",
    	inputSchema: inspectMinestomBuildInputSchema,
    	name: "inspect_minestom_build",
    	outputSchema: minestomBuildInspectionSchema,
    }).server(async (args) => {
    	const { repoRoot } = inspectMinestomBuildInputSchema.parse(args);
    	return inspectMinestomBuild(repoRoot);
    });
  • Input schema definition for the inspect_minestom_build tool.
    const inspectMinestomBuildInputSchema = z.object({
    	repoRoot: z
    		.string()
    		.optional()
    		.describe(
    			"Absolute or relative path to the Minestom workspace to inspect. Defaults to the current working directory.",
    		),
    });

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/Azoraqua/minestom-mcp-server'

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