Folder MCP
A server for local folder operations and file system access.
folder-mcp (Under Development, will be released soon enough)
Model Context Protocol Server for Folder Operations
A Model Context Protocol (MCP) server that provides tools for reading and analyzing folder structures, enabling LLMs to interact with local file systems safely and efficiently.
Overview
folder-mcp was created for a simple but powerful purpose: take your local folder and make it accessible to Large Language Models (LLMs) running anywhere. You don't need to upload your files to the cloud or use a third-party service.
it creates RAG (Retrieval-Augmented Generation) capabilities for your local files, allowing LLMs to read, search, and analyze documents in a secure and structured way. This server implements the Model Context Protocol (MCP) standard, allowing LLMs to interact with local file systems through a set of defined tools. This project is designed to work with MCP clients like Claude Desktop, Cursor, VsCode and others, providing a secure and efficient way to access and manipulate files within specified folders.
Features
✅ Secure File Access
- Read files from specified folders with path validation
- Security checks to prevent directory traversal attacks
- Support for various file types and encodings
✅ File System Operations
- List all files in a folder recursively
- Search files by name patterns (glob support)
- Get folder information and metadata
- Exclude common directories like node_modules and .git
✅ MCP Integration
- Standard Model Context Protocol server implementation
- Works with Claude Desktop and other MCP clients
- Stdio transport for seamless integration
- Structured tool definitions with JSON schemas
✅ Developer Friendly
- TypeScript implementation with full type safety
- Clear error handling and informative responses
- Simple CLI interface for testing and development
Installation
git clone https://github.com/okets/folder-mcp.git
cd folder-mcp
npm install
npm run build
Configuration
folder-mcp uses a centralized configuration system stored in config.yaml
at the project root. This YAML file contains settings for embeddings, caching, processing, API, logging, and development configurations.
Embedding Models
The system supports multiple embedding models with GPU acceleration via Ollama:
Model | Dimensions | Description |
---|---|---|
nomic-v1.5 | 768 | High-quality general-purpose (default) |
mxbai-large | 1024 | Large model with excellent performance |
all-minilm | 384 | Lightweight and fast |
bge-small | 384 | BAAI general embedding, small version |
gte-base | 768 | General Text Embeddings model |
Configuration Structure
# Embedding Model Configuration
embeddings:
defaultModel: "nomic-v1.5"
ollamaApiUrl: "http://127.0.0.1:11434"
batchSize: 32
timeoutMs: 30000
models:
# Model definitions with dimensions, descriptions, etc.
# Cache Configuration
cache:
defaultCacheDir: "~/.cache/folder-mcp"
maxCacheSize: "10GB"
cleanupIntervalHours: 24
# Text Processing Configuration
processing:
defaultChunkSize: 1000
defaultOverlap: 200
maxConcurrentOperations: 10
# Development & Logging options
logging:
level: "info"
format: "json"
development:
enableDebugOutput: false
mockOllamaApi: false
For detailed configuration options, see CONFIGURATION.md.
Current Status
🚀 Version 1.0 - Basic MCP Server (13/30 planned features complete)
This is the foundation release providing secure file system access through MCP. The full vision includes semantic search, embeddings, and intelligent document parsing - see ROADMAP.md for the complete development plan.
What works now:
- ✅ Basic file reading and folder operations
- ✅ Security validation and path protection
- ✅ Pattern-based file searching
- ✅ MCP protocol integration
Coming next: Smart text chunking, semantic embeddings, vector search (see all 30 planned features)
Usage
As an MCP Server
This server is designed to be used with MCP clients like Claude Desktop. Add it to your Claude Desktop configuration:
{
"mcpServers": {
"folder-mcp": {
"command": "node",
"args": [
"C:\\Path\\To\\folder-mcp\\dist\\mcp-server.js",
"C:\\Path\\To\\folder-mcp"
],
"env": {}
}
}
}
⚠️ Critical Claude Desktop Integration Note: The MCP protocol requires that ONLY valid JSON-RPC messages go to stdout. Any logging or debugging output to stdout will break the connection. All logs should be redirected to stderr only. See CLAUDE_DESKTOP_SETUP.md for detailed troubleshooting tips.
Available Tools
The server currently provides the following tools:
- get_status - A system status tool that returns processing information to verify connection
- Optional parameter:
name
- A name to include in the greeting
- Optional parameter:
1. read_file
Read the contents of a specific file within a folder.
Parameters:
folder_path
: Path to the folder containing the filefile_path
: Relative path to the file within the folder
2. search_files
Search for files matching a specific pattern.
Parameters:
folder_path
: Path to the folder to searchpattern
: File pattern (e.g., ".md", ".txt", "config.*")
3. list_files
List all files in a folder recursively.
Parameters:
folder_path
: Path to the folder to list
4. get_folder_info
Get information about a folder including file count and metadata.
Parameters:
folder_path
: Path to the folder to analyze
Security Features
- Path Validation: Prevents access to files outside the specified folder
- Directory Exclusions: Automatically excludes node_modules, .git, and cache folders
- Error Handling: Graceful handling of permission errors and invalid paths
Architecture
MCP Server Implementation
The server implements the Model Context Protocol standard with the following components:
📡 MCP Client (Claude Desktop) ↔ 📞 Stdio Transport ↔ 🖥️ MCP Server ↔ 📁 File System
File Access Pattern
1. Client Request → 2. Tool Validation → 3. Path Security Check → 4. File Operation → 5. Response
Server Components
- Tool Handlers: Process read_file, search_files, list_files, and get_folder_info requests
- Security Layer: Validates paths and prevents directory traversal
- File Operations: Uses Node.js fs and glob for efficient file system access
- Transport Layer: Stdio transport for communication with MCP clients
Technical Details
Dependencies
@modelcontextprotocol/sdk
: MCP protocol implementationglob
: Pattern-based file searchingtypescript
: Type-safe development- Additional libraries for future file parsing capabilities
File Patterns
The server uses glob patterns for file searching:
*
- All files*.md
- Markdown files only**/*.js
- JavaScript files recursivelyconfig.*
- Any file starting with "config"
Excluded Directories
Automatically excluded from all operations:
**/node_modules/**
**/.git/**
**/.folder-mcp/**
Development
Building the Project
npm run build
Running the Server
npm start
Development Mode
npm run dev
Testing with MCP Clients
The server can be tested with any MCP-compatible client. For Claude Desktop, add the configuration to your settings file.
Future Enhancements
📋 Development Roadmap: See ROADMAP.md for visual progress and GITHUB_ISSUES.md for detailed task breakdown.
Planned Features (17 remaining tasks):
- Phase 3: Smart text chunking and semantic embeddings
- Phase 4: FAISS vector search and similarity matching
- Phase 5: Enhanced MCP integration with semantic search
- Phase 6: Real-time file watching and configuration system
- Phase 7: Performance optimization and comprehensive testing
- Phase 8: Documentation and npm release
Vision: Universal Folder-to-MCP Tool
Transform any folder into an intelligent knowledge base with:
- Multi-format parsing: PDF, Word, Excel, PowerPoint with structure preservation
- Semantic embeddings: Nomic Embed model for intelligent content understanding
- Vector search: FAISS-powered similarity search for context-aware retrieval
- Smart chunking: Meaning-based content segmentation
- Real-time updates: File watching with automatic re-indexing
- RAG capabilities: Enable LLMs to query folder contents intelligently
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
MIT License - see LICENSE file for details.
Acknowledgments
- Built with the Model Context Protocol SDK
- Uses TypeScript for type safety and developer experience
- Designed for secure and efficient file system access
- Compatible with Claude Desktop and other MCP clients
Enable your LLM to work with local folders through the Model Context Protocol! 🚀
Related Servers
AgentMcp
A local server that allows AI to execute Windows CMD commands, read/write files, and manage directories within a specified path.
PDF MCP Server
Extract text and data from PDF files using pdfplumber by providing local file paths.
MCP Excel Reader
Read large Excel files with automatic chunking and pagination support.
File Convert MCP Server
Convert files between various formats, including images, documents, audio, video, and more.
Excel Analyser MCP
Read and analyze Excel (.xlsx) and CSV (.csv) files with scalable, chunked, and column-specific data access, ideal for large datasets.
File Converter
Convert various file formats for documents and images, such as DOCX, PDF, CSV, and more.
Cross-Platform Filesystem MCP Server
A cross-platform filesystem server for Linux, macOS, and Windows with secure path restrictions.
Excel/CSV MCP Server
Read, analyze, and manipulate data in Excel (XLSX, XLS) and CSV files with advanced filtering and analytics.
MCP File Preview Server
Preview local HTML files and capture screenshots, saving them to a local directory.
LDIMS MCP
Provides an MCP interface for the LDIMS document management system.