scan_project_dirs
Scan project directories to locate package.json files and identify dev scripts, enabling automated management of npm run dev processes in background.
Instructions
プロジェクト内のpackage.jsonとdevスクリプトを検索
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/scanProjectDirs.ts:17-60 (handler)Main handler function that scans project directories using ProjectScanner, finds package.json with dev scripts, and returns formatted JSON result.export async function scanProjectDirs(): Promise<string> { try { logger.info('Scanning for project directories'); const scanner = new ProjectScanner(); const projects = await scanner.scanForProjects(); if (projects.length === 0) { return JSON.stringify({ success: false, message: 'devスクリプトが定義されたpackage.jsonが見つかりませんでした', projects: [] }); } const result = { success: true, message: `${projects.length}個のプロジェクトが見つかりました`, projects: projects.map(project => ({ directory: project.directory, name: project.packageJson.name || 'Unnamed Project', devScript: project.packageJson.scripts?.dev, hasEnvFile: !!project.envPath, envPath: project.envPath, priority: project.priority, dependencies: Object.keys({ ...project.packageJson.dependencies, ...project.packageJson.devDependencies }).slice(0, 5) // Show first 5 dependencies })) }; logger.info(`Found ${projects.length} projects with dev scripts`); return JSON.stringify(result, null, 2); } catch (error) { logger.error('Failed to scan project directories', { error }); return JSON.stringify({ success: false, message: `スキャンエラー: ${error}`, projects: [] }); } }
- src/tools/scanProjectDirs.ts:7-15 (schema)Tool schema defining name, description, and empty input schema (no parameters required).export const scanProjectDirsSchema: Tool = { name: 'scan_project_dirs', description: 'プロジェクト内のpackage.jsonとdevスクリプトを検索', inputSchema: { type: 'object', properties: {}, additionalProperties: false } };
- src/index.ts:55-65 (registration)Registers the scanProjectDirsSchema in the array of available tools provided to the MCP server.const tools = [ scanProjectDirsSchema, startDevServerSchema, getDevStatusSchema, getDevLogsSchema, stopDevServerSchema, restartDevServerSchema, getHealthStatusSchema, recoverFromStateSchema, autoRecoverSchema, ];
- src/index.ts:127-135 (registration)Switch case in tool call handler that invokes the scanProjectDirs function and formats the response.case 'scan_project_dirs': return { content: [ { type: 'text', text: await scanProjectDirs(), }, ], };