Skip to main content
Glama

plan_minestom_feature

Plan Minestom server features by generating implementation outlines for bootstrap, commands, events, instances, or scheduled tasks based on official patterns.

Instructions

Use this when you want a Minestom feature plan grounded in official patterns for bootstrap, commands, events, instances, schedulers, and threading.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
featureTypeYesThe kind of Minestom feature you want to plan.
languageNoThe target JVM language for the implementation.java
packageNameNoBase package name for the generated outline.dev.example.minestom
targetNameYesA short feature name such as SpawnCommand or LobbyJoinListener.
useCasesNoOptional behavior notes or acceptance criteria to fold into the plan.

Implementation Reference

  • The implementation of the `plan_minestom_feature` tool handler.
    export const planMinestomFeatureTool: TanStackServerTool = toolDefinition({
    	description:
    		"Use this when you want a Minestom feature plan grounded in official patterns for bootstrap, commands, events, instances, schedulers, and threading.",
    	inputSchema: planMinestomFeatureInputSchema,
    	name: "plan_minestom_feature",
    	outputSchema: planMinestomFeatureOutputSchema,
    }).server(async (args) => {
    	const { featureType, language, packageName, targetName, useCases } =
    		planMinestomFeatureInputSchema.parse(args);
    	const blueprint = getFeatureBlueprint(featureType);
    	const extension = language === "kotlin" ? "kt" : "java";
    	const packagePath = packageName.replaceAll(".", "/");
    
    	const files = blueprint.fileTemplates.map((template) => {
    		const className = template.suffix
    			? `${targetName}${template.suffix}`
    			: targetName;
    
    		return {
    			path: `src/main/${language}/${packagePath}/${className}.${extension}`,
    			purpose: template.purpose,
    		};
    	});
    
    	const keyApis = getApisBySymbols(blueprint.keyApiSymbols).map((api) => ({
    		javadocUrl: api.javadocUrl,
    		packageName: api.packageName,
    		symbol: api.symbol,
    	}));
    
    	const summary =
    		useCases.length > 0
    			? `${blueprint.summary} Prioritize these use cases: ${useCases.join("; ")}.`
    			: blueprint.summary;
    
    	return planMinestomFeatureOutputSchema.parse({
    		featureType,
    		files,
    		implementationSteps: [
    			...blueprint.implementationSteps,
    			...(useCases.length > 0
    				? [
    						`Fold the requested behavior into the design without breaking the main Minestom ownership boundary: ${useCases.join("; ")}.`,
    					]
    				: []),
    		],
    		keyApis,
    		primaryTopic: blueprint.primaryTopic,
    		summary,
    		supportingTopics: blueprint.supportingTopics,
    		threadSafetyNotes: blueprint.threadSafetyNotes,
    		verificationSteps: blueprint.verificationSteps,
    	});
    });
  • Input schema for the `plan_minestom_feature` tool.
    const planMinestomFeatureInputSchema = z.object({
    	featureType: minestomFeatureTypeSchema.describe(
    		"The kind of Minestom feature you want to plan.",
    	),
    	language: languageSchema
    		.default("java")
    		.describe("The target JVM language for the implementation."),
    	packageName: z
    		.string()
    		.default("dev.example.minestom")
    		.describe("Base package name for the generated outline."),
    	targetName: z
    		.string()
    		.describe(
    			"A short feature name such as SpawnCommand or LobbyJoinListener.",
    		),
    	useCases: z
    		.array(z.string())
    		.default([])
    		.describe(
    			"Optional behavior notes or acceptance criteria to fold into the plan.",
    		),
    });

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