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
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional curated category filter to narrow the ecosystem suggestions. | |
| includeLiveResults | No | When true, also search live GitHub repositories tagged with the Minestom library topic. | |
| repoRoot | No | Absolute or relative path to the target Minestom repository. Defaults to the current working directory for environment-aware suggestions. | |
| useCase | Yes | Describe the problem space, such as command framework, world persistence, debug rendering, or Kotlin coroutines. |
Implementation Reference
- src/minestom/libraries.ts:276-331 (handler)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), }); }); - src/minestom/libraries.ts:19-42 (schema)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.", ), });