folder-mcp
Enables LLMs to securely read, search, and analyze local file systems through the Model Context Protocol. Provides tools for listing files, pattern-based searching, and reading file contents with built-in security validation.
README
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! 🚀
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。