Filesystem MCP 📁
Secure filesystem operations for AI agents - Token-optimized with batch processing
Batch operations • Project root safety • Token optimized • Zod validation
Quick Start • Installation • Tools
🚀 Overview
Empower your AI agents (like Claude/Cline) with secure, efficient, and token-saving access to your project files. This Node.js server implements the Model Context Protocol (MCP) to provide a robust set of filesystem tools.
The Problem:
Traditional AI filesystem access:
- Shell commands for each operation ❌
- No batch processing (high token cost) ❌
- Unsafe (no project root boundaries) ❌
- High latency (shell spawn overhead) ❌
The Solution:
Filesystem MCP Server:
- Batch operations (10+ files at once) ✅
- Token optimized (reduce round trips) ✅
- Secure (confined to project root) ✅
- Direct API (no shell overhead) ✅
Result: Safe, fast, and token-efficient filesystem operations for AI agents.
⚡ Performance Advantages
Token & Latency Optimization
| Metric | Individual Shell Commands | Filesystem MCP | Improvement |
|---|---|---|---|
| Operations/Request | 1 file | 10+ files | 10x reduction |
| Round Trips | N operations | 1 request | N× fewer |
| Latency | Shell spawn per op | Direct API | 5-10× faster |
| Token Usage | High overhead | Batched context | 50-70% less |
| Error Reporting | stderr parsing | Per-item status | Detailed |
Real-World Benefits
- Batch file reads - Read 10 files in one request vs 10 requests
- Multi-file edits - Edit multiple files with single tool call
- Recursive operations - List entire directory trees efficiently
- Detailed status - Per-item success/failure reporting
🎯 Why Choose This Server?
Security & Safety
- 🛡️ Project Root Confinement - All operations restricted to
cwdat launch - 🔒 Permission Control - Built-in chmod/chown tools
- ✅ Validation - Zod schemas validate all arguments
- 🚫 Path Traversal Prevention - Cannot escape project directory
Efficiency & Performance
- ⚡ Batch Processing - Process multiple files/directories per request
- 🎯 Token Optimized - Reduce AI-server communication overhead
- 🚀 Direct API - No shell process spawning
- 📊 Detailed Results - Per-item status for batch operations
Developer Experience
- 🔧 Easy Setup -
npx/bunxfor instant use - 🐳 Docker Ready - Official Docker image available
- 📦 Comprehensive Tools - 11+ filesystem operations
- 🔄 MCP Standard - Full protocol compliance
📦 Installation
Method 1: npx/bunx (Recommended)
The simplest way - always uses latest version from npm.
Using npx:
{
"mcpServers": {
"filesystem-mcp": {
"command": "npx",
"args": ["@sylphlab/filesystem-mcp"],
"name": "Filesystem (npx)"
}
}
}
Using bunx:
{
"mcpServers": {
"filesystem-mcp": {
"command": "bunx",
"args": ["@sylphlab/filesystem-mcp"],
"name": "Filesystem (bunx)"
}
}
}
Important: The server uses its own Current Working Directory (cwd) as the project root. Ensure your MCP host (e.g., Cline/VSCode) launches the command with cwd set to your project's root directory.
Method 2: Docker
Use the official Docker image for containerized environments.
{
"mcpServers": {
"filesystem-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/path/to/your/project:/app",
"sylphlab/filesystem-mcp:latest"
],
"name": "Filesystem (Docker)"
}
}
}
Remember to replace /path/to/your/project with your actual project path.
Method 3: Local Build (Development)
# Clone repository
git clone https://github.com/SylphxAI/filesystem-mcp.git
cd filesystem-mcp
# Install dependencies
pnpm install
# Build
pnpm run build
# Watch mode (auto-rebuild)
pnpm run dev
MCP Host Configuration:
{
"mcpServers": {
"filesystem-mcp": {
"command": "node",
"args": ["/path/to/filesystem-mcp/dist/index.js"],
"name": "Filesystem (Local Build)"
}
}
}
🚀 Quick Start
Once configured in your MCP host (see Installation), your AI agent can immediately use the filesystem tools.
Example Agent Interaction
<use_mcp_tool>
<server_name>filesystem-mcp</server_name>
<tool_name>read_content</tool_name>
<arguments>{"paths": ["src/index.ts", "package.json"]}</arguments>
</use_mcp_tool>
Server Response:
{
"results": [
{
"path": "src/index.ts",
"content": "...",
"success": true
},
{
"path": "package.json",
"content": "...",
"success": true
}
]
}
📋 Features
File Operations
| Tool | Description | Batch Support |
|---|---|---|
| read_content | Read file contents | ✅ Multiple files |
| write_content | Write/append to files | ✅ Multiple files |
| edit_file | Surgical edits with diff output | ✅ Multiple files |
| search_files | Regex search with context | ✅ Multiple files |
| replace_content | Multi-file search & replace | ✅ Multiple files |
Directory Operations
| Tool | Description | Batch Support |
|---|---|---|
| list_files | List files/directories recursively | Single path |
| stat_items | Get detailed file/directory status | ✅ Multiple items |
| create_directories | Create directories with parents | ✅ Multiple paths |
Management Operations
| Tool | Description | Batch Support |
|---|---|---|
| delete_items | Remove files/directories | ✅ Multiple items |
| move_items | Move/rename files/directories | ✅ Multiple items |
| copy_items | Copy files/directories | ✅ Multiple items |
Permission Operations
| Tool | Description | Batch Support |
|---|---|---|
| chmod_items | Change POSIX permissions | ✅ Multiple items |
| chown_items | Change ownership | ✅ Multiple items |
Key Benefit: Tools supporting batch operations process each item individually and return detailed per-item status reports.
💡 Design Philosophy
Core Principles
-
Security First
- All operations confined to project root
- Path traversal prevention
- Permission controls built-in
-
Efficiency Focused
- Batch processing reduces token usage
- Direct API calls (no shell overhead)
- Minimal communication round trips
-
Robustness
- Per-item success/failure reporting
- Detailed error messages
- Zod schema validation
-
Simplicity
- Clear, consistent API
- MCP standard compliance
- Easy integration
📊 Comparison with Alternatives
| Feature | Filesystem MCP | Shell Commands | Other Scripts |
|---|---|---|---|
| Security | ✅ Root confined | ❌ Full shell access | ⚠️ Variable |
| Token Efficiency | ✅ Batching | ❌ One op/command | ⚠️ Variable |
| Latency | ✅ Direct API | ❌ Shell spawn | ⚠️ Variable |
| Batch Operations | ✅ Most tools | ❌ No | ⚠️ Maybe |
| Error Reporting | ✅ Per-item detail | ❌ stderr parsing | ⚠️ Variable |
| Setup | ✅ Easy (npx/Docker) | ⚠️ Secure shell setup | ⚠️ Custom |
| MCP Standard | ✅ Full compliance | ❌ No | ⚠️ Variable |
🛠️ Tech Stack
| Component | Technology |
|---|---|
| Language | TypeScript (strict mode) |
| Runtime | Node.js / Bun |
| Protocol | Model Context Protocol (MCP) |
| Validation | Zod schemas |
| Package Manager | pnpm |
| Distribution | npm + Docker Hub |
🎯 Use Cases
AI Agent Development
Enable AI agents to:
- Read project files - Access code, configs, docs
- Edit multiple files - Refactor across codebase
- Search codebases - Find patterns and definitions
- Manage project structure - Create, move, organize files
Code Assistants
Build powerful coding tools:
- Cline/Claude integration - Direct filesystem access
- Batch refactoring - Edit multiple files at once
- Safe operations - Confined to project directory
- Efficient operations - Reduce token costs
Automation & Scripting
Automate development tasks:
- File generation - Create boilerplate files
- Project setup - Initialize directory structures
- Batch processing - Handle multiple files efficiently
- Content transformation - Search and replace across files
🗺️ Roadmap
✅ Completed
- [x] Core filesystem operations (read, write, edit, etc.)
- [x] Batch processing for most tools
- [x] Project root security
- [x] Docker image
- [x] npm package
- [x] Zod validation
🚀 Planned
- [ ] File watching capabilities
- [ ] Streaming support for large files
- [ ] Advanced filtering for
list_files - [ ] Performance benchmarks
- [ ] Compression/decompression tools
- [ ] Symlink management
🤝 Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch -
git checkout -b feature/my-feature - Write tests - Ensure good coverage
- Follow TypeScript strict mode - Type safety first
- Add documentation - Update README if needed
- Submit a pull request
Development Setup
# Clone and install
git clone https://github.com/SylphxAI/filesystem-mcp.git
cd filesystem-mcp
pnpm install
# Build
pnpm run build
# Watch mode (auto-rebuild)
pnpm run dev
🤝 Support
- 🐛 Bug Reports
- 💬 Discussions
Show Your Support: ⭐ Star • 👀 Watch • 🐛 Report bugs • 💡 Suggest features • 🔀 Contribute
📄 License
MIT © Sylphx
🙏 Credits
Built with:
- Model Context Protocol - MCP standard
- Zod - Schema validation
- TypeScript - Type safety
- pnpm - Package manager
Special thanks to the MCP community ❤️
📚 Publishing
This repository uses GitHub Actions to automatically publish to:
- npm: @sylphlab/filesystem-mcp
- Docker Hub: sylphlab/filesystem-mcp
Triggered on version tags (v*.*.*) pushed to main branch.
Required secrets: NPM_TOKEN, DOCKERHUB_USERNAME, DOCKERHUB_TOKEN
Secure. Efficient. Token-optimized.
The filesystem MCP server that saves tokens and keeps your projects safe
sylphx.com •
@SylphxAI •
[email protected]
Recommend MCP Servers 💡
jp-weather-mcp-server
A simple MCP server that provides Japan weather information using the livedoor weather API.
@naoraideas/hubspot-mcp-server
An MCP server bridging applications with HubSpot's API via the Model Context Protocol.
shadow-cljs-mcp
An MCP server that monitors shadow-cljs builds and provides real-time build status updates, allowing LLMs to verify build status after making changes to ClojureScript files.
devhub-cms-mcp
An MCP server that integrates DevHub CMS with Large Language Models, enabling LLMs to manage content, businesses, locations, and media within the DevHub CMS system.
langfuse
Model Context Protocol (MCP) Server for Langfuse Prompt Management. This server allows you to access and manage your Langfuse prompts through the Model Context Protocol.
kukapay/whereami-mcp
A lightweight MCP server that provides geolocation information based on IP address.