Secure filesystem operations for AI agents - Token-optimized with batch processing
Batch operations β’ Project root safety β’ Token optimized β’ Zod validation
Quick Start β’ Installation β’ Tools
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.
| 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 |
- 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 devMCP 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