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 💡
@softeria/ms-365-mcp-server
A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
mem0-mcp
This demonstrates a structured approach for using an MCP server with mem0 to manage coding preferences efficiently. The server can be used with Cursor and provides essential tools for storing, retrieving, and searching coding preferences.
julien040/anyquery
Query anything (GitHub, Notion, +40 more) with SQL and let LLMs (ChatGPT, Claude) connect to using MCP
SchemaCrawler-MCP-Server
A Model Context Protocol (MCP) server for SchemaCrawler, enabling AI agents to query and understand database schemas.
mcp-ipfs-server
A MCP server that integrates IPFS for decentralized data storage and sharing interactions
code_search
An MCP server designed for code search functionality.