Filesystem MCP Server
TypeScript implementation of a local filesystem MCP server with bounded inspection, comparison, and mutation surfaces.
This root README is the DX-first entrypoint. It keeps only shared orientation and routes detailed tool guidance to endpoint-local README.md files.
Read this next
| Need | Start here |
|---|---|
| Shared conventions and cross-endpoint rules | CONVENTIONS.md |
| Shared architecture and ownership boundaries | DESCRIPTION.md |
| Tool-specific quick guidance | Endpoint-local README.md links below |
Architecture at a glance
| Layer | Responsibility |
|---|---|
application |
MCP bootstrap, tool-catalog composition, stable server framing, and server-scope exposure |
domain |
Tool-specific handlers, schemas, results, and runtime semantics |
infrastructure |
Path guarding, logging, persistence, and shared technical helpers |
Shared developer rules
- All path-based operations stay inside configured allowed directories.
- Broad-root discovery and recursive inspection default-exclude vendor, cache, and generated trees unless callers explicitly target them or reopen named descendants.
- Resume-capable inspection families stay same-endpoint and continue through
resumeTokenplus the appropriateresumeMode. - Primary result data stays complete in
content.text;structuredContentadds machine-readable envelope metadata and mirrored structured payloads. - Public read surfaces remain intentionally split:
read_files_with_line_numbersfor bounded inline batch reads,read_file_contentfor advanced single-file modes.
External dependency for content search
The regex, fixed-string, and native pattern-aware count lanes depend on the native ugrep executable.
This dependency is now resolved during MCP server startup preflight, not lazily during request execution. The server expects one of these runtime conditions:
UGREP_EXECUTABLE_PATHpoints to the native shell-freeugrepbinary, or- the MCP server process
PATHalready contains the directory that holds the nativeugrepexecutable.
A successful ugrep --version check in an interactive shell is helpful, but it is not sufficient by itself. The decisive environment is the Node.js process that runs the MCP server.
Common installation examples:
- Debian/Ubuntu:
apt-get install ugrep - Fedora/RHEL/CentOS:
dnf install ugrep - Arch:
pacman -S ugrep - macOS:
brew install ugrep - Windows:
winget install Genivia.ugreporchoco install ugrep
After installation, verify with ugrep --version and then restart the MCP client or IDE process that launches the server so the server runtime can inherit the updated environment.
Windows permanent fix when ugrep --version is not available
If ugrep is installed on Windows but ugrep --version still cannot be executed, you MUST apply the permanent Chocolatey fix below.
This usually means ChocolateyInstall is set incorrectly and Chocolatey created the package under the wrong root.
Run:
[Environment]::SetEnvironmentVariable('ChocolateyInstall','C:\ProgramData\chocolatey','Machine')
$env:ChocolateyInstall = 'C:\ProgramData\chocolatey'
$env:Path = "C:\ProgramData\chocolatey\bin;$env:Path"
choco install ugrep --force -y
Then open a new PowerShell window and verify again:
ugrep --version
If the MCP server still cannot start native search afterward, configure UGREP_EXECUTABLE_PATH with the absolute path to ugrep.exe for the process that launches the MCP server.
Endpoint README TOC
Application/server scope
Inspection — discovery
Inspection — metadata and integrity
Inspection — search and count
Inspection — read
Comparison
Mutation — content
Mutation — path
Documentation boundary
Root documentation stays shared and non-redundant:
README.md= DX-first entrypointDESCRIPTION.md= architecture indexCONVENTIONS.md= shared conventions and leaf-slice routing- endpoint-local
README.mdfiles = detailed developer-facing guidance per public endpoint
This root file is intentionally a navigation surface, not a second endpoint-by-endpoint manual.
Recommend MCP Servers 💡
simctl-mcp
A Model Context Protocol server implementation for iOS Simulator control.
Apt MCP Server
A TypeScript-based Model Context Protocol (MCP) server for controlling the apt package manager on Linux, enabling AI agents to install, remove, update, and query apt packages.
touchdesigner-mcp-server
An MCP server implementation that enables AI agents to control and operate TouchDesigner projects
mcp-containerd
An MCP server implemented in Rust that provides an interface to manage Containerd's CRI (Container Runtime Interface) operations, including runtime and image services.
UnityMCPIntegration
Enable AI Agents to Control Unity through MCP integration
mcp-server-screeny
Privacy-focused macOS MCP server for AI agents to capture screenshots of user-approved windows