Skip to main content
Glama
AesirKode

enhanced-filesystem-mcp

by AesirKode
README.md
# Enhanced Filesystem MCP Server

[![CI](https://github.com/AesirKode/enhanced-filesystem-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/AesirKode/enhanced-filesystem-mcp/actions/workflows/ci.yml)
[![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen)](https://nodejs.org)
[![Version](https://img.shields.io/badge/version-0.13.0-blue)](#)
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)

High-performance [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server giving AI agents advanced filesystem and automation capabilities on Windows.

**26 tools** across file I/O, search, Git, process management, Ollama, HTTP, SSH, Windows UI automation, and more — all from a single server.

---

## Install

**Requirements:** Node.js >= 22 · Windows (for `windows_tool`; other tools are cross-platform)

```bash
git clone https://github.com/AesirKode/enhanced-filesystem-mcp
cd enhanced-filesystem-mcp
npm install
npm run build
```

### Connect to Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "enhanced-filesystem": {
      "command": "node",
      "args": ["C:/path/to/enhanced-filesystem-mcp/dist/index.js"],
      "env": {
        "ALLOWED_DIRS": "C:/Users/you/Projects",
        "MAX_PARALLEL": "20"
      }
    }
  }
}
```

---

## The Toolkit (26 Tools)

### File Operations
| Tool | Purpose |
| :--- | :--- |
| `efs_read` | Read any file with caching and pagination |
| `efs_write` | Write files of any size — no chunking |
| `efs_edit` | Surgical find/replace |
| `efs_list` | Directory listing with depth and pattern filters |
| `efs_info` | File metadata: size, type, timestamps |
| `efs_delete` | Delete files or directories |
| `efs_move` | Move or rename |
| `efs_search` | Parallel file/content search |
| `efs_batch` | Atomic multi-operation execution with rollback |
| `efs_git` | Git: status, diff, log, blame, commit |

### Execution & Process
| Tool | Purpose |
| :--- | :--- |
| `efs_exec` | Shell command execution |
| `efs_python` | Python with persistent sessions |
| `process_tool` | Service/GPU management + NVIDIA stats |

### AI & Integration
| Tool | Purpose |
| :--- | :--- |
| `ollama_tool` | Ollama LLM: generate, chat, pull, manage models |
| `http_tool` | HTTP client with auth, retry, file download |
| `json_tool` | Deep JSON with JSONPath queries |

### Utilities
| Tool | Purpose |
| :--- | :--- |
| `archive_tool` | Zip: create, extract, list, add |
| `hash_tool` | MD5 / SHA1 / SHA256 / SHA512 |
| `clipboard_tool` | System clipboard read/write |
| `download_tool` | Smart downloads from CivitAI, HuggingFace, URLs |
| `model_tool` | GGUF/Safetensors inspection without loading |
| `yaml_tool` | YAML/TOML config management |
| `diff_tool` | File and directory comparison |
| `windows_tool` | Windows UI automation: keyboard, mouse, screenshots |
| `analysis_tool` | TypeScript/JS code structure analysis |
| `ssh_tool` | SSH client with SFTP |

---

## Configuration

All settings via environment variables:

| Variable | Default | Description |
| :--- | :--- | :--- |
| `ALLOWED_DIRS` | *(none)* | Comma-separated allowed directories |
| `CACHE_SIZE` | `100` | LRU cache entries |
| `MAX_PARALLEL` | `20` | Max parallel operations |
| `MODELS_DIR` | `D:\Models` | Base path for `download_tool` auto-placement |

---

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md). Bug reports and feature requests welcome via [GitHub Issues](../../issues).

## License

MIT — [Aesir / David R.](LICENSE)

TDQS

B3.2/5.0

Scored across 26 tools

Disambiguation3/5

Most tools have clearly distinct purposes, but efs_batch duplicates operations in efs_read/write/edit/delete/move/list, creating ambiguity about when to use batch versus individual tools. JSON and YAML tools overlap on JSON handling, and efs_exec/process_tool have unclear boundaries for shell versus process management.

Naming Consistency2/5

The efs_ prefix is used for filesystem operations but also for git, exec, and python tools, making the prefix meaningless. Other tools use a '_tool' suffix with varied noun names, mixing snake_case conventions and creating two completely different naming patterns.

Tool Count2/5

26 tools is excessive for a filesystem-focused server, especially since many tools (ollama, http, windows automation, ssh) are unrelated to files. The broad scope makes the set feel like a grab-bag rather than a cohesive toolset.

Completeness3/5

Core filesystem operations like read, write, edit, delete, move, list, and search are covered, but there is no copy tool, no chmod or symlink support, and efs_git includes only a subset of git commands. The non-filesystem tools feel bolted on and do not fill these primary domain gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues