Secure filesystem operations for AI agents - Token-optimized with batch processing
npm version Docker Pulls License
Batch operations β’ Project root safety β’ Token optimized β’ Zod validation
Quick Start β’ Installation β’ Tools
Filesystem MCP ServerEmpower 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.
| Metric | Individual Shell Commands | Filesystem MCP | Improvement |
|---|---|---|---|
| Operations/Request | 1 file | 10+ files | 10x reduction |
| Round Trips | N operations | 1 request | Γγ°γ€ fewer |
| Latency | Shell spawn per op | Direct API | Γγ°γ€ faster |
| Token Usage | High overhead | Batched context | 50-70% less |
| Error Reporting | stderr parsing | Per-item status | Detailed |
- 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
- π‘οΈ 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
- β‘ 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
- π§ Easy Setup -
npx/bunxfor instant use - π³ Docker Ready - Official Docker image available
- π¦ Comprehensive Tools - 11+ filesystem operations
- π MCP Standard - Full protocol compliance
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.
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.
# 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)"
}
}
}Once configured in your MCP host (see Installation), your AI agent can immediately use the filesystem tools.
<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
}
]
}| 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 |
| 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 |
| 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 |
| 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.
-
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
| Feature | Filesystem MCP | Shell Commands | Other Scripts |
|---|---|---|---|
| Security | β Root confined | β Full shell access | |
| Token Efficiency | β Batching | β One op/command | |
| Latency | β Direct API | β Shell spawn | |
| Batch Operations | β Most tools | β No | |
| Error Reporting | β Per-item detail | β stderr parsing | |
| Setup | β Easy (npx/Docker) | ||
| MCP Standard | β Full compliance | β No |
| 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 |
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
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
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
β Completed
- Core filesystem operations (read, write, edit, etc.)
- Batch processing for most tools
- Project root security
- Docker image
- npm package
- Zod validation
π Planned
- File watching capabilities
- Streaming support for large files
- Advanced filtering for
list_files - Performance benchmarks
- Compression/decompression tools
- Symlink management
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
# 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
- π Bug Reports
- π¬ Discussions
- π§ Email
Show Your Support: β Star β’ π Watch β’ π Report bugs β’ π‘ Suggest features β’ π Contribute
MIT Β© Sylphx
Built with:
- Model Context Protocol - MCP standard
- Zod - Schema validation
- TypeScript - Type safety
- pnpm - Package manager
Special thanks to the MCP community β€οΈ
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 β’
hi@sylphx.com