track_project
Analyze and track project structure to maintain inventory of files, folders, and their purposes for software development projects.
Instructions
Analyzes and tracks project structure, keeping inventory of all files, folders, and their purposes. Use at project start and after major changes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Root path of the project | |
| projectName | Yes | Name of the project | |
| techStack | No | Technologies used |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"projectName": {
"description": "Name of the project",
"type": "string"
},
"projectPath": {
"description": "Root path of the project",
"type": "string"
},
"techStack": {
"description": "Technologies used",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"projectPath",
"projectName"
],
"type": "object"
}
Implementation Reference
- src/tools/fullstack.ts:17-89 (handler)Implements the track_project tool handler, generating comprehensive project tracking markdown with structure recommendations, checklists, and best practices.export function trackProjectHandler(args: any) { const { projectPath, projectName, techStack = [] } = args; const tracking = `# Project Tracking: ${projectName} ## Project Root \`${projectPath}\` ## Tech Stack ${techStack.length > 0 ? techStack.map((t: string) => `- ${t}`).join("\n") : "Not specified"} --- ## Recommended Structure ### For Web Projects \`\`\` ${projectName}/ ├── src/ # Source code │ ├── components/ # UI components │ ├── pages/ # Page components │ ├── hooks/ # Custom hooks │ ├── utils/ # Utility functions │ ├── services/ # API services │ ├── types/ # TypeScript types │ └── styles/ # Global styles ├── public/ # Static assets ├── tests/ # Test files ├── docs/ # Documentation ├── .github/ # GitHub config │ └── workflows/ # GitHub Actions ├── package.json ├── tsconfig.json ├── README.md └── .gitignore \`\`\` ### For API Projects \`\`\` ${projectName}/ ├── src/ │ ├── controllers/ # Route handlers │ ├── services/ # Business logic │ ├── models/ # Data models │ ├── middleware/ # Custom middleware │ ├── routes/ # Route definitions │ ├── utils/ # Helpers │ └── config/ # Configuration ├── tests/ ├── migrations/ # Database migrations ├── docs/ └── docker-compose.yml \`\`\` ## File Tracking Checklist - [ ] README.md - Project documentation - [ ] package.json - Dependencies & scripts - [ ] .gitignore - Git ignore patterns - [ ] .env.example - Environment template - [ ] tsconfig.json - TypeScript config - [ ] Dockerfile - Container definition - [ ] docker-compose.yml - Container orchestration ## Best Practices 1. Keep related files together (feature-based) 2. Separate concerns (logic, UI, data) 3. Use consistent naming conventions 4. Document as you go 5. Track all new files added `; return { content: [{ type: "text", text: tracking }] }; }
- src/tools/fullstack.ts:7-15 (schema)Defines the input schema for the track_project tool using Zod, including projectPath, projectName, and optional techStack.export const trackProjectSchema = { name: "track_project", description: "Analyzes and tracks project structure, keeping inventory of all files, folders, and their purposes. Use at project start and after major changes.", inputSchema: z.object({ projectPath: z.string().describe("Root path of the project"), projectName: z.string().describe("Name of the project"), techStack: z.array(z.string()).optional().describe("Technologies used") }) };
- src/index.ts:77-118 (registration)Registers the track_project tool in the toolRegistry map used by the MCP stdio server, associating it with its schema and handler.const toolRegistry: Map<string, RegisteredTool> = new Map([ ["sequential_thinking", { schema: sequentialThinkingSchema, handler: sequentialThinkingHandler }], ["plan_task", { schema: planTaskSchema, handler: planTaskHandler }], ["reflect_on_code", { schema: reflectOnCodeSchema, handler: reflectOnCodeHandler }], ["analyze_architecture", { schema: analyzeArchitectureSchema, handler: analyzeArchitectureHandler }], ["debug_problem", { schema: debugProblemSchema, handler: debugProblemHandler }], ["brainstorm_solutions", { schema: brainstormSolutionsSchema, handler: brainstormSolutionsHandler }], ["compare_approaches", { schema: compareApproachesSchema, handler: compareApproachesHandler }], ["estimate_complexity", { schema: estimateComplexitySchema, handler: estimateComplexityHandler }], ["generate_tests", { schema: generateTestsSchema, handler: generateTestsHandler }], ["explain_code", { schema: explainCodeSchema, handler: explainCodeHandler }], ["save_memory", { schema: saveMemorySchema, handler: saveMemoryHandler }], ["read_memory", { schema: readMemorySchema, handler: readMemoryHandler }], ["list_memories", { schema: listMemoriesSchema, handler: listMemoriesHandler }], ["clear_memory", { schema: clearMemorySchema, handler: clearMemoryHandler }], ["validate_code", { schema: validateCodeSchema, handler: validateCodeHandler }], ["generate_cursor_rules", { schema: generateCursorRulesSchema, handler: generateCursorRulesHandler }], ["generate_gemini_config", { schema: generateGeminiConfigSchema, handler: generateGeminiConfigHandler }], ["generate_claude_config", { schema: generateClaudeConfigSchema, handler: generateClaudeConfigHandler }], ["generate_windsurf_config", { schema: generateWindsurfConfigSchema, handler: generateWindsurfConfigHandler }], ["generate_aider_config", { schema: generateAiderConfigSchema, handler: generateAiderConfigHandler }], ["generate_cline_config", { schema: generateClineConfigSchema, handler: generateClineConfigHandler }], ["generate_copilot_config", { schema: generateCopilotConfigSchema, handler: generateCopilotConfigHandler }], // Linting tools ["check_imports", { schema: checkImportsSchema, handler: checkImportsHandler }], ["lint_code", { schema: lintCodeSchema, handler: lintCodeHandler }], ["format_code", { schema: formatCodeSchema, handler: formatCodeHandler }], // IDE config tools ["generate_continue_config", { schema: generateContinueConfigSchema, handler: generateContinueConfigHandler }], ["generate_tabnine_config", { schema: generateTabnineConfigSchema, handler: generateTabnineConfigHandler }], ["generate_vscode_tasks", { schema: generateVSCodeTasksSchema, handler: generateVSCodeTasksHandler }], ["generate_vscode_launch", { schema: generateVSCodeLaunchSchema, handler: generateVSCodeLaunchHandler }], ["generate_jetbrains_config", { schema: generateJetBrainsConfigSchema, handler: generateJetBrainsConfigHandler }], // Fullstack automation tools ["track_project", { schema: trackProjectSchema, handler: trackProjectHandler }], ["check_dependencies", { schema: checkDependenciesSchema, handler: checkDependenciesHandler }], ["generate_github_actions", { schema: generateGitHubActionsSchema, handler: generateGitHubActionsHandler }], ["full_stack_scaffold", { schema: fullStackScaffoldSchema, handler: fullStackScaffoldHandler }], ["developer_rules", { schema: developerRulesSchema, handler: developerRulesHandler }], ]);
- src/server.ts:87-123 (registration)Registers the track_project tool in the toolRegistry map used by the HTTP MCP server, associating it with its schema and handler.const toolRegistry = new Map<string, { schema: any; handler: any }>([ ["sequential_thinking", { schema: sequentialThinkingSchema, handler: sequentialThinkingHandler }], ["plan_task", { schema: planTaskSchema, handler: planTaskHandler }], ["reflect_on_code", { schema: reflectOnCodeSchema, handler: reflectOnCodeHandler }], ["analyze_architecture", { schema: analyzeArchitectureSchema, handler: analyzeArchitectureHandler }], ["debug_problem", { schema: debugProblemSchema, handler: debugProblemHandler }], ["brainstorm_solutions", { schema: brainstormSolutionsSchema, handler: brainstormSolutionsHandler }], ["compare_approaches", { schema: compareApproachesSchema, handler: compareApproachesHandler }], ["estimate_complexity", { schema: estimateComplexitySchema, handler: estimateComplexityHandler }], ["generate_tests", { schema: generateTestsSchema, handler: generateTestsHandler }], ["explain_code", { schema: explainCodeSchema, handler: explainCodeHandler }], ["save_memory", { schema: saveMemorySchema, handler: saveMemoryHandler }], ["read_memory", { schema: readMemorySchema, handler: readMemoryHandler }], ["list_memories", { schema: listMemoriesSchema, handler: listMemoriesHandler }], ["clear_memory", { schema: clearMemorySchema, handler: clearMemoryHandler }], ["validate_code", { schema: validateCodeSchema, handler: validateCodeHandler }], ["check_imports", { schema: checkImportsSchema, handler: checkImportsHandler }], ["lint_code", { schema: lintCodeSchema, handler: lintCodeHandler }], ["format_code", { schema: formatCodeSchema, handler: formatCodeHandler }], ["generate_cursor_rules", { schema: generateCursorRulesSchema, handler: generateCursorRulesHandler }], ["generate_gemini_config", { schema: generateGeminiConfigSchema, handler: generateGeminiConfigHandler }], ["generate_claude_config", { schema: generateClaudeConfigSchema, handler: generateClaudeConfigHandler }], ["generate_windsurf_config", { schema: generateWindsurfConfigSchema, handler: generateWindsurfConfigHandler }], ["generate_aider_config", { schema: generateAiderConfigSchema, handler: generateAiderConfigHandler }], ["generate_cline_config", { schema: generateClineConfigSchema, handler: generateClineConfigHandler }], ["generate_copilot_config", { schema: generateCopilotConfigSchema, handler: generateCopilotConfigHandler }], ["generate_continue_config", { schema: generateContinueConfigSchema, handler: generateContinueConfigHandler }], ["generate_tabnine_config", { schema: generateTabnineConfigSchema, handler: generateTabnineConfigHandler }], ["generate_vscode_tasks", { schema: generateVSCodeTasksSchema, handler: generateVSCodeTasksHandler }], ["generate_vscode_launch", { schema: generateVSCodeLaunchSchema, handler: generateVSCodeLaunchHandler }], ["generate_jetbrains_config", { schema: generateJetBrainsConfigSchema, handler: generateJetBrainsConfigHandler }], ["track_project", { schema: trackProjectSchema, handler: trackProjectHandler }], ["check_dependencies", { schema: checkDependenciesSchema, handler: checkDependenciesHandler }], ["generate_github_actions", { schema: generateGitHubActionsSchema, handler: generateGitHubActionsHandler }], ["full_stack_scaffold", { schema: fullStackScaffoldSchema, handler: fullStackScaffoldHandler }], ["developer_rules", { schema: developerRulesSchema, handler: developerRulesHandler }], ]);