Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Go MCP server for surgical file edits: insert, replace, move, copy, dry-run, verified replaceall.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
The maker has not listed install details in the registry. See the maker’s README below.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The publisher (kehsiaocuba-ux) is not the repo owner (amalexico); someone else may have listed it
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 0 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.12.0) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code.
In the same category: Spec Driven Development, Remote Desktop Commander, Readfirst
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
What to read and check before changing a file: project rules, risks, checks and tests per file.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A zero-dependency CLI tool for surgical file edits from the command line. No interactive editors. No sed/awk gymnastics. Just simple, predictable operations with built-in verification.
Built for sysadmins, DevOps engineers, and anyone who scripts config changes.
go install github.com/amalexico/fedit@latest
Go install (recommended):
go install github.com/amalexico/fedit@latest
Or download the binary from GitHub Releases and put it in your PATH.
Verify:
fedit -file /etc/hostname -op show
# See what is in a file
fedit -file config.yaml -op show
fedit -file config.yaml -op show -line 10 -end 25
fedit -file config.yaml -op find -match "timeout"
fedit -file main.go -op map -lang go
fedit -file config.yaml -op replace -line 42 -end 42 -text "timeout: 60s" -v
fedit -file nginx.conf -op insertafter -match "server {" -text " include security.conf;" -v
fedit -file main.go -op move -match "func OldHelper(" -end 45 -beforematch "func NewHelper(" -v
fedit -file values.yaml -op copy -line 50 -end 65 -after 200 -times 3 -v
fedit -file data.tsv -op fields -col 2
fedit -file config.txt -op writeraw -text "path=C:\\Users\\admin"
fedit -file config.txt -op write -texthex 706174683d2f746d70
fedit -file config.txt -op insert -line 0 -cleanfirst -text "# regenerated"
fedit -file main.go -op find -match "TODO" -x 2>$null
fedit -file huge.log -op replaceall -match 'ERROR' -text 'WARN' -stream
# Entire file
fedit -file app.conf -op show
fedit -file app.conf -op show -line 50 -end 75
fedit -file app.conf -op show -line -10:
fedit -file app.conf -op show -line 50 -end -5
fedit -file app.conf -op show -line 100:+3
fedit -file config.go -op show -match "func Start" -endmatch "func End"
# Find all lines containing "ERROR"
fedit -file /var/log/app.log -op find -match "ERROR"
Pro tip: Run find first to get line numbers, then use replace or delete with exact lines.
# Insert a comment after line 1
fedit -file script.sh -op insert -line 1 -text "# Added by deploy script" -v
fedit -file config.yaml -op insert -line 10 -textfile extra-config.yaml -v
# Add a firewall rule after the matching comment
fedit -file iptables.rules -op insertafter -match "# Custom rules" -text "-A INPUT -p tcp --dport 8080 -j ACCEPT" -v
fedit -file nginx.conf -op insertafter -match "server {" -nth 2 -text " listen 8443 ssl;" -v
fedit -file docker-compose.yml -op insertafter -match "volumes:" -nth -1 -text " - /data:/data" -v
# Add a header before the first route definition
fedit -file routes.rb -op insertbefore -match "get '/'" -text " # === Public Routes ===" -v
fedit -file package.json -op insertbefore -match "}" -nth -1 -textfile new-deps.txt -v
# Replace a single line
fedit -file config.ini -op replace -line 15 -end 15 -text "max_connections = 200" -v
fedit -file config.ini -op replace -match "max_connections" -text "max_connections = 200" -v
fedit -file server.conf -op replace -match "[cache]" -end 35 -textfile patched-block.txt -v
fedit -file server.conf -op replace -line 30 -end 35 -textfile patched-block.txt -v
fedit -file CHANGELOG.md -op replace -match "## v1.6" -endmatch "## v1.5" -textfile new-section.txt -v
# Change all occurrences of old domain to new
fedit -file nginx.conf -op replaceall -match "old.example.com" -text "new.example.com" -v
fedit -file Makefile -op replaceall -match "1.1.0" -text "1.2.0" -v
VERIFY: PASS or VERIFY: FAIL followed by the changed lines. This covers a single file, -match-regex, -stream, -files and a file list in -file, and fedit_replaceall over MCP. -v adds a context window for every match (not printed with -stream).-files GLOB prints the same per-file report as a file list in -file: one OK, SKIP or FAIL line per file, then multi -file replaceall: N/M file(s) succeeded. An OK line reads OK PATH replaced on N line(s); VERIFY: PASS, a file without the text is a SKIP (No lines contain: TEXT) and is never modified. Exit code 0 if at least one file succeeded and none failed (SKIP files do not change that), 1 if none succeeded, 3 if any file is FAIL.# Extract column 2 from a tab-separated file (default delimiter: tab)
fedit -file data.tsv -op fields -col 2
fedit -file report.csv -op fields -col 3 -delim ","
fedit -file /etc/passwd -op fields -col 1 -delim ":"
Output goes to stdout for piping. Lines shorter than -col are skipped silently. Always streaming -- no memory limit regardless of file size.
Add -stream to replaceall or find to process files line-by-line without loading them into memory. 10 MB per-line buffer handles JSON blobs and minified files. Atomic integrity: writes to a temp file then renames -- original is untouched on interruption.
# Replace a pattern in a multi-GB log file
fedit -file server.log -op replaceall -match "10.0.0.1" -text "10.0.0.2" -stream
fedit -file big.csv -op replaceall -match-regex 'id_(\d+)' -text 'ID_$1' -stream
fedit -file huge.log -op find -match "FATAL" -stream
Supported with -stream: replaceall (literal and regex), find. Not supported: move, copy, map (these require full file structure in memory).
# Write a Windows path without double-escaping backslashes
fedit -file config.ini -op writeraw -text "basedir=C:\\Program Files\\App"
fedit -file output.txt -op writeraw -textfile template.txt
Unlike write, writeraw treats \n as two characters (backslash + n), not a newline.
fedit -file notes.txt -op writelines
Encode text to hex first (e.g. with fwencode), then pass the hex string as -text. Eliminates all shell-quoting issues with special characters.
# Decode hex string and write — no quoting gymnastics needed
fedit -file deploy.sh -op write -texthex 23212f62696e2f62617368
Same idea as -texthex, but for the search anchors. PowerShell mangles a double quote inside -match before fedit sees it, so case "replace": silently becomes case replace: and matches nothing. Pass the anchor as hex instead; fedit decodes it into -match (or -endmatch) once, so every op that takes an anchor works unchanged.
# Find a line containing double quotes (hex of: case "replace":)
fedit -file main.go -op find -matchhex 6361736520227265706c616365223a
Invalid hex exits 1 with matchhex: invalid hex string: ... (or endmatchhex: ...).
-file accepts a comma-separated list, a glob, or both. A real file with that exact name wins over glob expansion.
Read-only ops (show, find, map) print a ==> path <== header per file:
# Find TODO in every Go file in the current folder
fedit -file '*.go' -op find -match 'TODO'
fedit -file main.go,mcp.go -op map -lang go
Mutating ops (replaceall, insertafter, insertbefore, delete, replace, write) run on each file on its own:
# Replace in every matching file
fedit -file '*.conf' -op replaceall -match 'old.example.com' -text 'new.example.com'
fedit -file a.yaml,b.yaml -op insertafter -match 'servers:' -text ' - new'
fedit -file '*.md' -op delete -match ' ' -endmatch ' '
N/M file(s) succeeded. A FAIL is a replaceall file that was written but did not pass the on-disk verification. Exit code 0 if at least one file succeeded and none failed, 1 if none succeedOnly the beginning is shown; read the rest in the repo