Skip to main content
Glama

review_minestom_design

Review Minestom feature designs to ensure alignment with platform patterns for managers, instances, events, schedulers, and threading.

Instructions

Use this when you want Minestom-specific design feedback that checks whether a proposed feature aligns with the platform’s manager, instance, event, scheduler, and threading patterns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
designNotesYesFree-form design notes or a proposed implementation approach to review.
featureTypeYesThe kind of Minestom feature the notes describe.

Implementation Reference

  • The handler implementation for the review_minestom_design tool.
    }).server(async (args) => {
    	const { designNotes, featureType } =
    		reviewMinestomDesignInputSchema.parse(args);
    	const blueprint = getFeatureBlueprint(featureType);
    	const loweredNotes = designNotes.toLowerCase();
    
    	const strengths = blueprint.designChecks
    		.filter((check) =>
    			check.keywords.some((keyword) => loweredNotes.includes(keyword)),
    		)
    		.map((check) => check.strength);
    
    	const gaps = blueprint.designChecks
    		.filter(
    			(check) =>
    				!check.keywords.some((keyword) => loweredNotes.includes(keyword)),
    		)
    		.map((check) => check.gap);
    
    	const riskyAssumptions: string[] = [];
    
    	if (
    		loweredNotes.includes("async") &&
    		!/(acquirable|scheduler|taskschedule|executiontype|sync)/.test(loweredNotes)
    	) {
    		riskyAssumptions.push(
    			"The design mentions async work without explaining how Minestom-owned state is reacquired or handed back safely.",
    		);
    	}
    
    	if (
    		featureType === "instance-setup" &&
    		loweredNotes.includes("per-player") &&
    		!loweredNotes.includes("sharedinstance")
    	) {
    		riskyAssumptions.push(
    			"Per-player world semantics are mentioned without clarifying whether `SharedInstance` or a separate `InstanceContainer` owns that state.",
    		);
    	}
    
    	if (
    		featureType === "scheduled-task" &&
    		!/(cancel|shutdown|stop)/.test(loweredNotes)
    	) {
    		riskyAssumptions.push(
    			"The design does not explain who cancels or tears down the scheduled task when the feature stops.",
    		);
    	}
    
    	if (
    		featureType === "server-bootstrap" &&
    		!/(instance|spawn|asyncplayerconfigurationevent)/.test(loweredNotes)
    	) {
    		riskyAssumptions.push(
    			"The bootstrap notes do not make the initial player-to-instance flow explicit.",
    		);
    	}
    
    	const fitAssessment =
    		strengths.length >= Math.max(blueprint.designChecks.length - 1, 2)
    			? "strong"
    			: strengths.length >= 2
    				? "partial"
    				: "weak";
    
    	const recommendedApis = getApisBySymbols(blueprint.keyApiSymbols).map(
    		(api) => ({
    			javadocUrl: api.javadocUrl,
    			packageName: api.packageName,
    			symbol: api.symbol,
    		}),
    	);
    
    	return reviewMinestomDesignOutputSchema.parse({
    		featureType,
    		fitAssessment,
    		gaps,
    		recommendedApis,
    		recommendedTopics: [blueprint.primaryTopic, ...blueprint.supportingTopics],
    		riskyAssumptions,
    		strengths,
    		threadTickConcerns: blueprint.threadSafetyNotes,
    	});
    });
  • Input and output schemas for review_minestom_design.
    const reviewMinestomDesignInputSchema = z.object({
    	designNotes: z
    		.string()
    		.describe(
    			"Free-form design notes or a proposed implementation approach to review.",
    		),
    	featureType: minestomFeatureTypeSchema.describe(
    		"The kind of Minestom feature the notes describe.",
    	),
    });
    
    const reviewMinestomDesignOutputSchema = z.object({
    	featureType: minestomFeatureTypeSchema,
    	fitAssessment: reviewAssessmentSchema,
    	gaps: z.array(z.string()),
    	recommendedApis: z.array(
    		z.object({
    			javadocUrl: z.string().url(),
    			packageName: z.string(),
    			symbol: z.string(),
    		}),
    	),
    	recommendedTopics: z.array(minestomTopicSchema),
    	riskyAssumptions: z.array(z.string()),
    	strengths: z.array(z.string()),
    	threadTickConcerns: z.array(z.string()),
    });
  • Definition and registration of the review_minestom_design tool.
    export const reviewMinestomDesignTool: TanStackServerTool = toolDefinition({
    	description:
    		"Use this when you want Minestom-specific design feedback that checks whether a proposed feature aligns with the platform’s manager, instance, event, scheduler, and threading patterns.",
    	inputSchema: reviewMinestomDesignInputSchema,
    	name: "review_minestom_design",
    	outputSchema: reviewMinestomDesignOutputSchema,

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