Project Explorer MCP Server
Project Explorer MCP Server provides tools for analyzing, searching, and managing project files, with safety restrictions.
Recognizes and automatically excludes Git directories (.git) during project exploration and file searches.
Provides reference to the project's GitHub repository, enabling users to find the source code and contribute to development.
Enables searching and analyzing Node.js projects, including checking for outdated npm packages and analyzing import/export statements in JavaScript files.
Provides tools for analyzing npm dependencies, checking for outdated packages, and offering detailed update recommendations with version information.
Supports analysis of TypeScript projects with specialized features for detecting import/export statements and searching through TypeScript files.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Project Explorer MCP Server search for all async functions in the src directory"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
A powerful Model Context Protocol server for exploring, analyzing, and managing project files with advanced search capabilities
š¦ Available on npm:
@team-jd/mcp-project-explorer
ā” Quick Start
{
"mcpServers": {
"project-explorer": {
"command": "npx",
"args": ["-y", "@team-jd/mcp-project-explorer", "/your/project/path"]
}
}
}With disabled tools:
{
"mcpServers": {
"project-explorer": {
"command": "npx",
"args": [
"-y",
"@team-jd/mcp-project-explorer",
"/your/project/path",
"--disable-tool=delete_file"
]
}
}
}Related MCP server: Codebase MCP Server
š¬ Demo
ā¶ Watch the full demo on YouTube
šø Stop Wasting Tokens
Every line of raw file content your agent reads is context it never gets back. Project Explorer is built to answer structural questions without dumping files into the conversation:
š§
explore_projectreturns a compact file listing plus an import/export dependency graph ā no need to open files to understand a codebasešÆ
search_filestrims output withsnippetLength,maxResults,extensions,excludePatterns,excludeCommentsandexcludeStrings, so you get only the lines that matterš« Build and vendor noise (
node_modules,dist,.git,.next, ā¦) is always skippedāļø
--disable-toolremoves tools you don't use from the tool list entirely, shrinking the schema payload sent with every request
š Overview
The Project Explorer MCP Server provides comprehensive tools for analyzing project structures, searching through codebases, managing dependencies, and performing file operations. Perfect for developers who need intelligent project navigation and analysis capabilities.
š¦ Installation & Setup
š For MCP Users (Recommended)
Add this server to your MCP settings configuration:
{
"mcpServers": {
"project-explorer": {
"command": "npx",
"args": [
"-y",
"@team-jd/mcp-project-explorer",
"/path/to/your/project"
]
}
}
}š Multiple Directory Access:
{
"mcpServers": {
"project-explorer": {
"command": "npx",
"args": [
"-y",
"@team-jd/mcp-project-explorer",
"/path/to/project1",
"/path/to/project2",
"/path/to/project3"
]
}
}
}š« Disabling Specific Tools:
Use --disable-tool=tool_name or --disable-tool tool_name to disable tools you don't want available. Disabled tools won't appear in the tools list and can't be called.
{
"mcpServers": {
"project-explorer": {
"command": "npx",
"args": [
"-y",
"@team-jd/mcp-project-explorer",
"/path/to/project",
"--disable-tool=delete_file",
"--disable-tool", "rename_file"
]
}
}
}š¦ Available tools you can disable:
explore_projectlist_allowed_directoriessearch_filesrename_filedelete_filecheck_outdated
š ļø For Developers
# Clone and setup for development
git clone https://github.com/MausRundung/mcp-explorer.git
cd mcp-explorer
# Install dependencies
npm install
# Build the project
npm run build
# Run the MCP inspector for testing
npm run inspectorš ļø Available Commands
š explore_project
Analyzes project structure with detailed file information and import/export analysis
// Basic usage
explore_project({
directory: "/path/to/project"
})
// Advanced usage
explore_project({
directory: "/path/to/project",
subDirectory: "src", // Optional: focus on specific subdirectory
includeHidden: false // Optional: include hidden files (default: false)
})⨠Features:
š File size analysis with human-readable formatting
š Import/export statement detection for JS/TS and Dart files
š¦ Flutter/Dart dependency graph: resolves
package:URIs, implicit-relative imports, andpart/part ofcodegen links viapubspec.yaml(including localpath:dependencies in monorepos)š¦
pubspec.yamlsummaries: package name, SDK constraints, dependency counts, path deps, declared assetsš« Automatically excludes build directories (
node_modules,.git,dist,.vscode,.gradle,.idea,.dart_tool,Pods,ephemeral, etc.)š Recursive directory traversal
šÆ Support for subdirectory analysis
š search_files
Advanced file and code search with comprehensive filtering capabilities
// Simple text search
search_files({
pattern: "your search term",
searchPath: "/path/to/search"
})
// Advanced search with filters
search_files({
pattern: "function.*async", // Regex pattern
searchPath: "/path/to/search",
regexMode: true, // Enable regex
caseSensitive: false, // Case sensitivity
extensions: [".js", ".ts"], // File types to include
excludeExtensions: [".min.js"], // File types to exclude
excludeComments: true, // Skip comments
excludeStrings: true, // Skip string literals
maxResults: 50, // Limit results
sortBy: "relevance" // Sort method
})šļø Search Options:
Parameter | Type | Default | Description |
| string | required | Search pattern (text or regex). No default |
| string | first allowed dir | Directory to search in |
| string[] | all | Include only these file types |
| string[] |
| Exclude these file types |
| string[] |
| Exclude filename patterns |
| boolean |
| Treat pattern as regex |
| boolean |
| Case-sensitive search |
| boolean |
| Match whole words only |
| boolean |
| Multiline regex matching |
| number | unlimited | Directory recursion depth |
| boolean |
| Follow symbolic links |
| boolean |
| Search in binary files |
| number | none | Minimum file size (bytes) |
| number | none | Maximum file size (bytes) |
| string | none | Files modified after date (ISO 8601) |
| string | none | Files modified before date (ISO 8601) |
| number |
| Text snippet length around matches |
| number |
| Maximum number of results |
| string |
| Sort by: relevance, file, lineNumber, modified, size |
| boolean |
| Group results by file |
| boolean |
| Skip comments (language-aware, incl. Dart) |
| boolean |
| Skip string literals |
| boolean |
| Skip generated Dart parts ( |
| string |
| Output format: text or json |
šÆ Use Cases:
š Find all TODO comments:
pattern: "TODO.*", excludeStrings: trueš Search for potential bugs:
pattern: "console\\.log", regexMode: trueš¦ Find import statements:
pattern: "import.*from", regexMode: trueš§ Recent changes:
modifiedAfter: "2024-01-01", extensions: [".js", ".ts"]
š check_outdated
Checks for outdated npm packages with detailed analysis
// Basic check
check_outdated({
projectPath: "/path/to/project"
})
// Detailed analysis
check_outdated({
projectPath: "/path/to/project",
includeDevDependencies: true, // Include dev dependencies
outputFormat: "detailed" // detailed, summary, or raw
})š Output Formats:
detailed- Full package info with versions and update commandssummary- Count of outdated packages by typeraw- Raw npm outdated JSON output
š§ Requirements:
Node.js and npm must be installed
Valid
package.jsonin the specified directory
šļø delete_file
Safely delete files or directories with protection mechanisms
// Delete a file
delete_file({
path: "/path/to/file.txt"
})
// Delete a directory (requires recursive flag)
delete_file({
path: "/path/to/directory",
recursive: true, // Required for directories
force: false // Force deletion of read-only files
})ā ļø Safety Features:
š Only works within allowed directories
š Requires
recursive: truefor non-empty directoriesš”ļø Protection against accidental deletions
ā” Optional force deletion for read-only files
āļø rename_file
Rename or move files and directories
// Simple rename
rename_file({
oldPath: "/path/to/old-name.txt",
newPath: "/path/to/new-name.txt"
})
// Move to different directory
rename_file({
oldPath: "/path/to/file.txt",
newPath: "/different/path/file.txt"
})⨠Features:
š Works with both files and directories
š Can move between directories
š« Fails if destination already exists
š Both paths must be within allowed directories
š list_allowed_directories
Shows which directories the server can access
list_allowed_directories()š§ Use Cases:
š Check access permissions before operations
š”ļø Security validation
š Directory discovery
šØ Usage Examples
š Project Analysis Workflow
// 1. Check what directories you can access
list_allowed_directories()
// 2. Explore the project structure
explore_project({
directory: "/your/project/path",
includeHidden: false
})
// 3. Search for specific patterns
search_files({
pattern: "useState",
searchPath: "/your/project/path",
extensions: [".jsx", ".tsx"],
excludeComments: true
})
// 4. Check for outdated dependencies
check_outdated({
projectPath: "/your/project/path",
outputFormat: "detailed"
})š Advanced Search Scenarios
// Find all async functions
search_files({
pattern: "async\\s+function",
regexMode: true,
extensions: [".js", ".ts"]
})
// Find large files modified recently
search_files({
pattern: ".*",
minSize: 1000000, // 1MB+
modifiedAfter: "2024-01-01",
sortBy: "size"
})
// Find TODO comments excluding test files
search_files({
pattern: "TODO|FIXME|BUG",
regexMode: true,
excludePatterns: ["*test*", "*spec*"],
excludeStrings: true
})š”ļø Security & Permissions
The server operates within allowed directories only, providing:
š Sandboxed access - Cannot access files outside allowed paths
š”ļø Safe operations - Built-in protections against dangerous operations
š Path validation - All paths are normalized and validated
ā ļø Error handling - Clear error messages for permission issues
š§ Development
š Project Structure
src/
āāā index.ts # Main server entry point
āāā explore-project.ts # Project analysis tool
āāā search.ts # Advanced search functionality
āāā check-outdated.ts # NPM dependency checker
āāā delete-file.ts # File deletion tool
āāā rename-file.ts # File rename/move tool
āāā list-allowed.ts # Directory permission checkeršļø Build Commands
npm run build # Compile TypeScript
npm run watch # Watch mode for development
npm run inspector # Test with MCP inspectorš¤ Contributing
š“ Fork the repository
š Create a feature branch
š» Make your changes
ā Test thoroughly
š Submit a pull request
š License
See LICENSE file for details. š Qoder
Available Tools
6 toolscheck_outdatedA
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.
Inputs: path, projectPath, outputFormat, includeDevDependencies.
delete_fileA
Delete a file or directory. Use with extreme caution as this operation cannot be undone. When deleting directories, all contents will be permanently removed. The recursive option must be explicitly set to true to delete non-empty directories. Only works within allowed directories.
Inputs: path (required), force, recursive.
explore_projectA
Lists all files in a directory with their sizes. For JS/TS/TSX/JSX and Dart it parses imports/exports/functions and resolves local import edges (including Dart package: URIs and pubspec.yaml path dependencies) to summarize dependency entanglement. Reports Dart/Flutter packages found via pubspec.yaml (name, SDK constraints, deps, assets). Also extracts import/export-like declarations for common languages (Python/Java/Kotlin/Go/Rust/C#). Excludes common build directories like node_modules, .git, dist, .dart_tool, etc.
Inputs: path, directory, subDirectory, includeHidden.
list_allowed_directoriesA
Returns the list of directories that this MCP server is allowed to access. If empty, the server is running without an allow-list (unrestricted filesystem access).
Inputs: no named parameters.
rename_fileA
Rename or move a file or directory. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.
Inputs: newPath (required), oldPath (required).
search_filesA
Advanced file and code search tool with comprehensive filtering and matching capabilities. Searches files within allowed directories for a required literal or regex pattern, with file type filtering, size constraints, date filtering, and comment/string-aware match suppression (search always runs against the original, unmodified file content). Results can be formatted as text or JSON with configurable sorting and grouping. maxResults caps the total number of returned matches.
Inputs: pattern (required), path, sortBy, maxSize, +21 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 6 tools
Each tool serves a distinct purpose: listing allowed dirs, renaming/moving, project exploration with dependency analysis, content search, npm outdated check, and deletion. There is no overlap or ambiguity between them.
All tool names follow a consistent snake_case verb_noun pattern (e.g., list_allowed_directories, rename_file, explore_project). The naming is uniform and predictable.
With 6 tools, the server is well-scoped for a project exploration and file management utility. The count is within the ideal range and each tool contributes to the core functionality.
The tool set covers listing, searching, renaming, deleting, and dependency checks, but lacks basic file operations like creating or reading file content. This is a notable gap for a file-related server, though the exploration focus mitigates it partially.
Maintenance
Related MCP Connectors
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
Search indexed code, trace dependencies, assess change impact, and recall repository memory.
AI-powered codebase analysis ā call graphs, security, dead code, complexity. 150+ tools.
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables comprehensive directory analysis and file management operations including project structure exploration, intelligent file search, full CRUD operations on files and directories, batch operations with rollback capabilities, and Git integration.134MIT
- AlicenseNot gradedqualityDmaintenanceProvides secure and efficient tools for codebase analysis, including file management, metadata retrieval, and dependency tree traversal. It allows LLMs to explore project structures and search for configuration files within a restricted root directory.12 npm3MIT
- AlicenseAqualityCmaintenanceProvides essential developer tools for workspace management, including advanced file searching, project structure analysis, and batch code editing. It enables users to efficiently navigate, analyze, and modify source code within their development environment.761 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides tools for AI-driven development workflows including file system operations, code analysis, code execution, web fetching, and search.Apache 2.0