原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Fedit

作者:amalexico版本 1.12.0i★ –i–
注册名称io.github.kehsiaocuba-ux/fedit

安装

概览

作者提供的说明(英文原文)

Go MCP server for surgical file edits: insert, replace, move, copy, dry-run, verified replaceall.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: –
  • 传输方式:
  • 分类: 其他

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 0 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

作者没有在注册中心列出安装信息。请查看下方作者的 README。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ! 注意

    作者与仓库一致

    发布者(kehsiaocuba-ux)不是仓库所有者(amalexico);可能是其他人代为上架的

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 18496 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 18496 个服务器的 89% 更新
  • 基础检查结果等于或优于此分类中其他 18496 个服务器的 19%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Fedit 安全吗?

它在 1 项适用的基础检查中通过了 0 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.12.0)于5天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, MIDAS Gen NX / Civil NX

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

作者:formulahendry起步阶段↓ 66/周★ 44014个月前更新

在你的电脑上运行

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

作者:desktop-commander正在增长★ 2113天前更新

在云端运行✓ desktopcommander.app

MIDAS Gen NX / Civil NX

Read and carefully change the model open in MIDAS Gen NX or Civil NX on this PC.

作者:Dennis5882起步阶段↓ 1887/周今天更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

fedit — Fast File Editor for the Terminal

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

Why fedit?

  • One binary, zero dependencies — pure Go, runs everywhere
  • 21 language mappers — see the structure of any file before editing
  • -v flag — verify every mutation before moving on
  • Line-aware — no regex surprises, no "which match did it hit?"
  • Stream engine — process multi-GB files line-by-line with atomic integrity
  • Field extraction — pull CSV/TSV column N without awk
  • Many files at once — a comma list or glob in -file, plus cross-file copy, move and replace with -dest (since v1.9.0)
  • Safe — no in-place unless you say so, never touches files you did not name

Install

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

Quick Start

# See what is in a file

fedit -file config.yaml -op show

See just lines 10-25

fedit -file config.yaml -op show -line 10 -end 25

Find every line containing "timeout"

fedit -file config.yaml -op find -match "timeout"

See the structure of a Go file

fedit -file main.go -op map -lang go

Replace line 42 with new content

fedit -file config.yaml -op replace -line 42 -end 42 -text "timeout: 60s" -v

Insert a line after every occurrence of "server {"

fedit -file nginx.conf -op insertafter -match "server {" -text " include security.conf;" -v

Move a function block before another (content-matched, atomic)

fedit -file main.go -op move -match "func OldHelper(" -end 45 -beforematch "func NewHelper(" -v

Copy a config block and paste it 3 times at a new location

fedit -file values.yaml -op copy -line 50 -end 65 -after 200 -times 3 -v

Extract column 2 from a TSV file (v1.4+)

fedit -file data.tsv -op fields -col 2

Write content with literal backslashes — no \n escape expansion (v1.6.0)

fedit -file config.txt -op writeraw -text "path=C:\\Users\\admin"

Hex-encode tricky text to sidestep shell quoting (v1.6.0)

fwencode produces the hex; fedit decodes it before writing

fedit -file config.txt -op write -texthex 706174683d2f746d70

Overwrite a file cleanly then insert new content (v1.6.0)

fedit -file config.txt -op insert -line 0 -cleanfirst -text "# regenerated"

Get bare line numbers for scripting (v1.6.0)

fedit -file main.go -op find -match "TODO" -x 2>$null

Regex replace on a multi-GB log without loading it into memory (v1.4+)

fedit -file huge.log -op replaceall -match 'ERROR' -text 'WARN' -stream


All Operations

show — Display file contents
# Entire file

fedit -file app.conf -op show

Lines 50-75 only

fedit -file app.conf -op show -line 50 -end 75

Last 10 lines

fedit -file app.conf -op show -line -10:

Lines 50 to 5th from end

fedit -file app.conf -op show -line 50 -end -5

Lines 100-103 (relative range)

fedit -file app.conf -op show -line 100:+3

Show from one anchor to another (no line numbers needed)

fedit -file config.go -op show -match "func Start" -endmatch "func End"


find — Search for lines matching a substring
# Find all lines containing "ERROR"

fedit -file /var/log/app.log -op find -match "ERROR"

Output includes context lines and occurrence numbers

Use -nth to target a specific match in other operations

Pro tip: Run find first to get line numbers, then use replace or delete with exact lines.


insert — Insert content after a line number
# Insert a comment after line 1

fedit -file script.sh -op insert -line 1 -text "# Added by deploy script" -v

Insert multiple lines from a file

fedit -file config.yaml -op insert -line 10 -textfile extra-config.yaml -v


insertafter — Insert after a matching line (RECOMMENDED)
# 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

Target the 2nd occurrence

fedit -file nginx.conf -op insertafter -match "server {" -nth 2 -text " listen 8443 ssl;" -v

Target the last occurrence

fedit -file docker-compose.yml -op insertafter -match "volumes:" -nth -1 -text " - /data:/data" -v


insertbefore — Insert before a matching line (RECOMMENDED)
# Add a header before the first route definition

fedit -file routes.rb -op insertbefore -match "get '/'" -text " # === Public Routes ===" -v

Insert a dependency before the closing bracket

fedit -file package.json -op insertbefore -match "}" -nth -1 -textfile new-deps.txt -v


replace — Replace a line range with new content
# Replace a single line

fedit -file config.ini -op replace -line 15 -end 15 -text "max_connections = 200" -v

Replace the one line that contains a text (no end bound needed; after v1.12.0)

fedit -file config.ini -op replace -match "max_connections" -text "max_connections = 200" -v

Replace from a matched line through line 35 (-match with -end; after v1.12.0)

fedit -file server.conf -op replace -match "[cache]" -end 35 -textfile patched-block.txt -v

Replace lines 30-35 with content from a patch file

fedit -file server.conf -op replace -line 30 -end 35 -textfile patched-block.txt -v

Replace a section by content anchors (no line numbers needed)

fedit -file CHANGELOG.md -op replace -match "## v1.6" -endmatch "## v1.5" -textfile new-section.txt -v


replaceall — Global find-and-replace
# Change all occurrences of old domain to new

fedit -file nginx.conf -op replaceall -match "old.example.com" -text "new.example.com" -v

Update a version string everywhere

fedit -file Makefile -op replaceall -match "1.1.0" -text "1.2.0" -v

  • Every replaceall is verified by default: after the write, fedit re-reads the file from disk and prints 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).
  • Exit codes for replaceall: 0 ok, 1 the edit did not happen, 3 the file was written but verification failed or could not be done. With several files, one FAIL file makes the exit code 3 even when the others succeeded, and the MCP result is an error.
  • -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.

fields -- Extract a column from delimited files (v1.4.0)
# Extract column 2 from a tab-separated file (default delimiter: tab)

fedit -file data.tsv -op fields -col 2

Extract the third field from a CSV

fedit -file report.csv -op fields -col 3 -delim ","

Extract usernames from /etc/passwd (colon-delimited)

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.

-stream -- Large-file streaming mode (v1.4.0)

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

Regex replace in a huge file with capture groups

fedit -file big.csv -op replaceall -match-regex 'id_(\d+)' -text 'ID_$1' -stream

Streaming find -- grep-style output to stdout

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).

writeraw — Write without escape expansion
# Write a Windows path without double-escaping backslashes

fedit -file config.ini -op writeraw -text "basedir=C:\\Program Files\\App"

Write content from a file as-is

fedit -file output.txt -op writeraw -textfile template.txt

Unlike write, writeraw treats \n as two characters (backslash + n), not a newline.


writelines — Write lines interactively from stdin
fedit -file notes.txt -op writelines

Type lines at the > prompt, Ctrl+Z (Windows) or Ctrl+D (Unix) to finish


-texthex — Hex-encoded input (v1.6.0)

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


-matchhex / -endmatchhex — Hex-encoded anchors (v1.8.1)

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: ...).


Multiple files -- comma list or glob (show/find/map since v1.8.1, mutation and MCP since v1.9.0, -sourcefile and -sourceblock with a list since v1.11.0)

-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'

Map two files at once

fedit -file main.go,mcp.go -op map -lang go

  • find skips files with no hits (grep-style) and exits 1 only if nothing matched in any file.
  • map skips unrecognized extensions with a SKIP line.
  • A summary line reports how many files had results.

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'

Insert after the first match in each file

fedit -file a.yaml,b.yaml -op insertafter -match 'servers:' -text ' - new'

Delete from a start line through an end line in each file (-endmatch is inclusive)

fedit -file '*.md' -op delete -match ' ' -endmatch ' '

  • A problem in one file (no match, unreadable, read-only, write failed) is reported as SKIP and never stops the batch. A skipped file is never modified.
  • The report lists OK, SKIP or FAIL per file, then 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 succeed

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx