Skip to main content
Glama

suggest_minestom_libraries

Find Minestom libraries for specific development needs by analyzing your project and searching official directories with optional GitHub topic lookups.

Instructions

Use this when you want Minestom ecosystem suggestions grounded in the official libraries directory, with optional live GitHub topic lookups.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional curated category filter to narrow the ecosystem suggestions.
includeLiveResultsNoWhen true, also search live GitHub repositories tagged with the Minestom library topic.
repoRootNoAbsolute or relative path to the target Minestom repository. Defaults to the current working directory for environment-aware suggestions.
useCaseYesDescribe the problem space, such as command framework, world persistence, debug rendering, or Kotlin coroutines.

Implementation Reference

  • The handler logic for the 'suggest_minestom_libraries' tool, defined as a TanStack tool. It uses input/output schemas to validate data, performs environment inspection, selects curated libraries, fetches live libraries from GitHub (optionally), and returns the merged results.
    export const suggestMinestomLibrariesTool: TanStackServerTool = toolDefinition({
    	description:
    		"Use this when you want Minestom ecosystem suggestions grounded in the official libraries directory, with optional live GitHub topic lookups.",
    	inputSchema: suggestMinestomLibrariesInputSchema,
    	name: "suggest_minestom_libraries",
    	outputSchema: suggestMinestomLibrariesOutputSchema,
    }).server(async (args) => {
    	const { category, includeLiveResults, repoRoot, useCase } =
    		suggestMinestomLibrariesInputSchema.parse(args);
    	const environment = await inspectMinestomEnvironment(repoRoot).catch(
    		() => undefined,
    	);
    	const curated = selectCuratedLibraries(useCase, category, environment);
    	const live = includeLiveResults
    		? await fetchLiveLibraries(useCase, category)
    		: { results: [], warning: undefined };
    
    	const mergedResults = uniqueBy(
    		[...curated.results, ...live.results].filter(
    			(entry) =>
    				!environment?.existingLibraries.some(
    					(library) =>
    						library.repoUrl.toLowerCase() === entry.repoUrl.toLowerCase(),
    				),
    		),
    		(entry) => entry.repoUrl.toLowerCase(),
    	);
    
    	return suggestMinestomLibrariesOutputSchema.parse({
    		categoryFilter: category,
    		curatedResults: curated.results,
    		environment,
    		liveResults: live.results,
    		matchedCategories: uniqueBy(
    			[
    				...curated.inferredCategories.filter(
    					(value): value is z.infer<typeof libraryCategorySchema> => {
    						return (libraryCategorySchema.options as string[]).includes(value);
    					},
    				),
    				...curated.results.map((entry) => entry.category),
    				...live.results.map((entry) => entry.category),
    			],
    			(value) => value,
    		),
    		mergedResults,
    		query: useCase,
    		warning:
    			live.warning ??
    			(environment &&
    			(!environment.jvmProject.isLikelyJvmProject ||
    				environment.detectedTopics.length === 0)
    				? "No strong JVM-backed Minestom repository signals were detected in the inspected environment; suggestions are primarily use-case driven."
    				: undefined),
    	});
    });
  • The Zod input schema defining the parameters for the 'suggest_minestom_libraries' tool.
    const suggestMinestomLibrariesInputSchema = z.object({
    	category: libraryCategorySchema
    		.optional()
    		.describe(
    			"Optional curated category filter to narrow the ecosystem suggestions.",
    		),
    	includeLiveResults: z
    		.boolean()
    		.default(false)
    		.describe(
    			"When true, also search live GitHub repositories tagged with the Minestom library topic.",
    		),
    	repoRoot: z
    		.string()
    		.optional()
    		.describe(
    			"Absolute or relative path to the target Minestom repository. Defaults to the current working directory for environment-aware suggestions.",
    		),
    	useCase: z
    		.string()
    		.describe(
    			"Describe the problem space, such as command framework, world persistence, debug rendering, or Kotlin coroutines.",
    		),
    });

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