create_token_optimizer
Generate tiered context files for token optimization with ROI tracking to manage AI agent coding efficiency.
Instructions
Create tiered context files for token optimization with ROI tracking
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the project directory | |
| analysisId | No | Analysis ID from analyze_codebase_deeply | |
| tiers | No | Which context tiers to generate | |
| trackUsage | No | Enable token usage tracking | |
| generateMetrics | No | Generate ROI metrics report |
Implementation Reference
- The main handler function that implements the tool logic: creates tiered token-optimized context files (minimal, standard, comprehensive), context router YAML, usage tracking, and metrics report based on prior codebase analysis.export async function createTokenOptimizer( config: TokenOptimizerConfig ): Promise<TokenOptimizerResult> { const result: TokenOptimizerResult = { success: false, filesCreated: [], message: '', tokenSavings: { minimal: 0, standard: 0, comprehensive: 0, percentSaved: 0, }, }; try { // Check if analysis has been completed const analysisId = config.analysisId || global.latestAnalysisId; if (!analysisId || !global.codebaseAnalysis?.[analysisId]) { throw new Error('Codebase analysis must be completed first. Run analyze_codebase_deeply tool.'); } const analysis: DeepAnalysisResult = global.codebaseAnalysis[analysisId]; const tiers = config.tiers || ['minimal', 'standard', 'comprehensive']; // Create agent-context directory if it doesn't exist const contextDir = join(config.projectPath, 'agent-context'); if (!existsSync(contextDir)) { mkdirSync(contextDir, { recursive: true }); } // Generate tiered context files const contextTiers = generateTieredContexts(analysis, tiers); // Write each tier for (const tier of contextTiers) { const filePath = join(contextDir, `${tier.name}-context.md`); writeFileSync(filePath, tier.content); result.filesCreated.push(filePath); // Calculate token savings const baselineTokens = estimateTokens(getFullContext(analysis)); const tierTokens = estimateTokens(tier.content); result.tokenSavings[tier.name] = tierTokens; if (tier.name === 'minimal') { result.tokenSavings.percentSaved = Math.round((1 - tierTokens / baselineTokens) * 100); } } // Create context router configuration const routerConfig = createContextRouter(analysis, contextTiers); const routerPath = join(contextDir, 'context-router.yaml'); writeFileSync(routerPath, yaml.dump(routerConfig)); result.filesCreated.push(routerPath); // Create usage tracking configuration if requested if (config.trackUsage) { const trackingConfig = createUsageTracking(); const trackingPath = join(contextDir, 'token-tracking.yaml'); writeFileSync(trackingPath, yaml.dump(trackingConfig)); result.filesCreated.push(trackingPath); } // Generate metrics report if requested if (config.generateMetrics) { const metricsReport = generateMetricsReport(contextTiers, analysis); const metricsPath = join(contextDir, 'token-optimization-report.md'); writeFileSync(metricsPath, metricsReport); result.filesCreated.push(metricsPath); } result.success = true; result.message = `Created ${result.filesCreated.length} token-optimized files. Minimal tier saves ${result.tokenSavings.percentSaved}% tokens!`; } catch (error) { result.success = false; result.message = `Failed to create token optimizer: ${error}`; } return result; }
- MCP tool schema definition specifying input parameters like projectPath, analysisId, tiers, trackUsage, generateMetrics.name: 'create_token_optimizer', description: 'Create tiered context files for token optimization with ROI tracking', inputSchema: { type: 'object', properties: { projectPath: { type: 'string', description: 'Path to the project directory', }, analysisId: { type: 'string', description: 'Analysis ID from analyze_codebase_deeply', }, tiers: { type: 'array', items: { type: 'string', enum: ['minimal', 'standard', 'comprehensive'], }, description: 'Which context tiers to generate', }, trackUsage: { type: 'boolean', description: 'Enable token usage tracking', }, generateMetrics: { type: 'boolean', description: 'Generate ROI metrics report', }, }, required: ['projectPath'], }, },
- src/tools/index.ts:253-271 (registration)Tool registration and dispatch in the main tool call handler: validates input with Zod matching the schema and calls the handler function.case 'create_token_optimizer': { const params = z.object({ projectPath: z.string(), analysisId: z.string().optional(), tiers: z.array(z.enum(['minimal', 'standard', 'comprehensive'])).optional(), trackUsage: z.boolean().optional(), generateMetrics: z.boolean().optional(), }).parse(args); const result = await createTokenOptimizer(params); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
- TypeScript interfaces defining input config, output result, and internal ContextTier used by the handler for type safety.interface TokenOptimizerConfig { projectPath: string; analysisId?: string; tiers?: ('minimal' | 'standard' | 'comprehensive')[]; trackUsage?: boolean; generateMetrics?: boolean; } interface TokenOptimizerResult { success: boolean; filesCreated: string[]; message: string; tokenSavings: { minimal: number; standard: number; comprehensive: number; percentSaved: number; }; } interface ContextTier { name: 'minimal' | 'standard' | 'comprehensive'; targetTokens: number; files: string[]; content: string; }
- Key helper function that generates the tiered context configurations based on analysis and requested tiers.function generateTieredContexts( analysis: DeepAnalysisResult, tiers: ('minimal' | 'standard' | 'comprehensive')[] ): ContextTier[] { const contextTiers: ContextTier[] = []; if (tiers.includes('minimal')) { contextTiers.push({ name: 'minimal', targetTokens: 300, files: ['quick-reference.md'], content: generateMinimalContext(analysis), }); } if (tiers.includes('standard')) { contextTiers.push({ name: 'standard', targetTokens: 1500, files: ['quick-reference.md', 'patterns.yaml'], content: generateStandardContext(analysis), }); } if (tiers.includes('comprehensive')) { contextTiers.push({ name: 'comprehensive', targetTokens: 3000, files: ['quick-reference.md', 'CODEBASE-CONTEXT.md', 'PROJECT-TEMPLATE.md'], content: generateComprehensiveContext(analysis), }); } return contextTiers; }