An MCP server for exploring project folders and analyzing imports/exports.
This server has 6 tools with mostly complete schemas and descriptions, but quality is uneven. Tool naming follows verb-noun convention (explore_project, search_files, delete_file, etc.), which is good. However, descriptions are generic and lack depth, most are under 150 chars and don't explain WHEN to use the tool or dependencies between tools. Parameters have types and many have descriptions, but several lack detail on constraints (e.g., depth defaults to 3 but no explanation of why; searchPattern is required but no guidance on glob vs regex syntax). Error handling exists (file validations) but error messages are not designed to guide LLM recovery. Output schemas are partially documented in code but not clearly surfaced in tool definitions. The tool 'check_outdated' involves spawning npm commands, which is a security and reliability concern not mentioned in the description. Destructive tools (delete_file, rename_file) lack confirmation/dry-run patterns despite the pattern recommendation. Overall, definitions are functional but not LLM-optimized.
Check for outdated npm packages in package.json using 'npm outdated'. Analyzes the current project's dependencies and shows which packages have newer versions available. Requires npm to be installed and accessible from the command line.
Delete a file or directory in the allowed project directories.
Explores a project directory to analyze its structure, including files, folders, dependencies, imports, exports, and project metadata.
Lists all directories that are allowed to be accessed by the project explorer.
Rename a file or directory in the allowed project directories.
Search for files in allowed directories using pattern matching.
Destructive tools (delete_file, rename_file) lack confirmation/dry-run patterns. Agents can irreversibly delete or rename files without safety guardrails.
Tool descriptions are generic and do not explain WHEN to use each tool or dependencies. E.g., 'explore_project' description does not mention it analyzes imports/exports or that depth=3 is the default rationale. Descriptions should be 50-200 chars and answer what, when, why.
check_outdated spawns 'npm outdated' subprocess without documenting security implications (npm injection, arbitrary command execution if args are unsanitized). Description does not warn that npm must be installed or that outdated output parsing is fragile.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Parameters lack clear constraints. 'depth' defaults to 3 but no explanation of impact (why not 5 or 1?). 'searchPattern' is required but no guidance on whether it accepts glob (*.js) or regex (/\.js$/). 'maxDepth' defaults to 5 but no min/max bounds.
Error handling present but not LLM-optimized. When a path is not in allowed directories, the error should suggest 'Try list_allowed_directories() first' or provide the allowed list. Currently likely returns a generic rejection.
Output schemas not documented in tool definitions. Agents don't know what fields to expect (e.g., does explore_project return tree structure, flat list, or object graph?). Outputformat enum is present but output structure itself is undocumented.
'projectPath' and 'path' parameters are aliases but not clearly documented as such. LLMs may pass both simultaneously, causing ambiguity. Should use a single canonical parameter or explicitly state mutual exclusivity in description.