Most filesystem servers make you read a range into the conversation and write it back out; here the copy happens on disk. The dry runs are the other reason to prefer it — replacements and insertions can be previewed before they touch anything, and every path is resolved through symlinks before it is allowed.
A single Go binary sandboxed to the directories you name. Eighteen tools; every replacement and insertion tool supports a dry run, so you can see the change before it lands.
- 18 tools, and no runtime to install
- Files read whole or by line range, several at once, and searched by regex across a tree with binary files skipped — read_file, read_multiple_files, search_in_files
- Files written, appended to and prepended to, with parent directories created — write_file, append_to_file, prepend_to_file
- Exact-string and regex replacement with capture groups, in one file or across many, each with dry_run — replace_in_file, replace_in_file_regex, replace_in_files
- Content inserted before or after a regex match, matching the surrounding indentation — insert_before_regex, insert_after_regex
- A line range copied from one file to another directly on disk — copy_lines
- Directories listed with pattern, type, depth, hidden-file and metadata filters, created, and the allowed set shown — list_directory, create_directory, list_allowed_directories
- Files moved or renamed, and file metadata read — move_file, get_file_info
- Path validation that resolves symlinks to canonical form, blocks traversal, and logs every refused attempt
MCP_ALLOWED_DIRS, a comma-separated list of the directories the server may touch. Download the release binary for your platform — darwin-arm64, darwin-amd64, linux-amd64, linux-arm64 or windows-amd64 — or build with go build. Nothing else to install.
Build from source — clone the repository and build it, then point your client at the binary
