gradle-list
Introspect Android project structure by listing Gradle variants, modules, or tasks to understand build configurations and dependencies.
Instructions
Introspect project structure.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | ||
| module | No | e.g., ':app' |
Implementation Reference
- src/tools/gradle-list.ts:12-56 (handler)The handler function for the 'gradle-list' tool, which dispatches logic based on the requested operation (modules, variants, or tasks).
export async function handleGradleListTool( input: GradleListInput, context: ServerContext ): Promise<Record<string, unknown>> { switch (input.operation) { case "modules": { const modules = await context.gradle.listModules(); return { modules }; } case "variants": { const variants = await context.gradle.listVariants(input.module); return { variants, module: input.module || "all" }; } case "tasks": { const tasks = await context.gradle.listTasks(input.module); const listId = context.cache.generateId("tasks"); context.cache.set(listId, { tasks }, "tasks", CACHE_TTLS.GRADLE_VARIANTS); const buildTasks = tasks.filter((t) => t.includes("assemble") || t.includes("bundle")); const testTasks = tasks.filter((t) => t.includes("test") || t.includes("Test")); const cleanTasks = tasks.filter((t) => t.includes("clean")); return { listId, summary: { totalTasks: tasks.length, buildTasks: buildTasks.slice(0, 10), testTasks: testTasks.slice(0, 10), cleanTasks: cleanTasks.slice(0, 5), }, module: input.module || "all", }; } default: throw new ReplicantError( ErrorCode.INVALID_OPERATION, `Unknown operation: ${input.operation}`, "Valid operations: variants, modules, tasks", ); } } - src/tools/gradle-list.ts:5-8 (schema)Input validation schema for the 'gradle-list' tool.
export const gradleListInputSchema = z.object({ operation: z.enum(["variants", "modules", "tasks"]), module: z.string().optional(), }); - src/tools/gradle-list.ts:58-78 (registration)Tool registration definition for 'gradle-list', containing metadata and input schema description.
export const gradleListToolDefinition = { name: "gradle-list", description: "Introspect project structure.", inputSchema: { type: "object", properties: { operation: { type: "string", enum: ["variants", "modules", "tasks"], }, module: { type: "string", description: "e.g., ':app'" }, }, required: ["operation"], }, annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, }, };