Token导航 LogoToken导航TokenDH.com
Search Replace MCP logo
开发工具未说明官方级别未说明来源级核验

Search Replace MCP

MCP Server

一个安全的搜索和替换工具,支持CLI和MCP服务器模式,用于代码和文本文件的多阶段替换操作。

工具数

8

提示词数

0

GitHub Stars

1

资源数

0
命令行工具C#Claude文本处理ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AdamTovatt

提供方

AdamTovatt

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

SearchReplaceMcp

![Tests](https://github.com/AdamTovatt/search-replace-mcp/actions/workflows/dotnet.yml) ](https://www.nuget.org/packages/SearchReplaceMcp) ](https://www.nuget.org/packages/SearchReplaceMcp) ![License: MIT](https://opensource.org/licenses/MIT)

一种搜索和替换工具,可以分阶段进行替换并安全应用。既可作为CLI工具,又可作为AI代理的MCP(模型上下文协议)服务器。

安装

dotnet tool install --global SearchReplaceMcp

安装后 sr 命令将在全球范围内可用。

要更新到最新版本:

dotnet tool update --global SearchReplaceMcp

要卸载,请执行以下操作:

dotnet tool uninstall --global SearchReplaceMcp

要在Claude Code中将其注册为MCP工具:

claude mcp add sr -- sr --mcp

要在其他编辑器(如Cursor)中将其用作MCP工具,请将其添加到MCP配置中:

{
  "mcpServers": {
    "searchreplace": {
      "command": "sr",
      "args": ["--mcp"]
    }
  }
}

用法

工作流程是:初始化会话、添加文档、搜索或阶段替换、预览,然后提交(或取消)。

sr init [path]                                      # Initialize at path (default: current directory)
sr add 
 [path2] ...                          # Add files, directories, or glob patterns to scope
sr search 
 [options]                       # Search added documents for matches
sr replace 
  [options]        # Search and stage replacements
sr preview                                          # See all staged replacements with before/after
sr commit                                           # Apply all staged replacements to files
sr cancel                                           # Discard the session
sr help                                             # Show help information

搜索/替换选项

标志描述
-c, --match-case区分大小写匹配
-w, --whole-word仅匹配整个单词
-r, --regex将模式视为正则表达式
-p, --preserve-case保留匹配文本的大小写模式(仅替换)
--no-ecma--regex,使用。NET正则表达式代替ECMAScript。看 正则表达式风格 在......下面

例子

# Simple find and replace across C# files
sr init .
sr add "**/*.cs"
sr replace "oldMethod" "newMethod" -c -w
sr preview
sr commit

# Case-preserving rename (Hello→Goodbye, hello→goodbye, HELLO→GOODBYE)
sr init .
sr add "**/*.cs" "**/*.txt"
sr replace "hello" "goodbye" -p
sr preview
sr commit

# Regex replace with capture groups
sr init .
sr add "**/*.cs"
sr replace "Log\.Info\((.+)\)" "Logger.Information($1)" -r
sr preview
sr commit

# Search without replacing
sr init .
sr add "**/*.cs"
sr search "TODO" -c
sr cancel

行为

更换在应用之前分阶段进行

在运行之前,不会将任何内容写入磁盘 sr commit.使用 sr preview 在申请之前查看所有更改。

多个替换呼叫安全累积

你可以打电话 sr replace 在提交之前,多次使用不同的模式。自动跳过重叠的替换以防止损坏。

检测到过期文件

如果文件在以下时间之间被外部修改 sr replacesr commit,文件将被跳过并报告,而不是被静默损坏。

线路末端被保留

回写文件时,会检测并保留原始行尾样式(LF或CRLF)。

保留大小写以适应匹配的文本

随着 -p,替换文本反映了每场比赛的大小写模式:全部大写→ 上部,全部下部→ 下部,标题案例→ 标题大小写,混合→ 就这样。

正则表达式风格

--regex 默认情况下,模式被解释为ECMAScript正则表达式。这是大多数JS/Python用户所期望的,而且——关键的是——它允许对非参与组的反向引用与空字符串匹配。例如, (text-\w+)(?:\/(\d+))?-\2 匹配两者 text-red-text-red/50-50 一次通过;下。NET的默认正则表达式,第一个输入将使整个匹配失败,因为组2没有参与。

通过 --no-ecma 回到。NET正则表达式。该模式支持向后看((?...)),平衡组和字符类减法,但失去了空的反向引用行为。

请注意,ECMAScript模式也会影响 \b 和那个 \w 字符类——两者都只将ASCII字母/数字/下划线视为单词字符。这很重要 --whole-word 结合 --regex 在非ASCII文本上:默认情况下,单词边界不会考虑以下字母 éñ 作为单词字符。使用 --no-ecma 如果你需要支持Unicode的单词边界。同样,ECMAScript模式下不区分大小写的匹配使用简单的大小写折叠,而不是。NET的文化意识折叠。

跳过二进制文件

添加文档时,会自动排除二进制文件(前8KB中的空字节检测到)。

路径被沙盒化

所有文件操作都与会话的基目录相关。

会话共享

CLI和MCP模式共享相同的会话存储,因此您可以在一种模式下初始化会话并在另一种模式中提交。

作为MCP服务器

sr --mcp

当作为MCP服务器运行时,可以使用以下工具:

  • sr_init(path?: string) -初始化会话
  • sr_add(paths: string) -将文档添加到作用域(逗号分隔的路径/globs)
  • sr_search(pattern, matchCase, wholeWord, useRegex, ecmaScript=true) -搜索匹配项
  • sr_replace(pattern, replacement, matchCase, wholeWord, useRegex, preserveCase, ecmaScript=true) -舞台更换
  • sr_preview() -预览分阶段替换
  • sr_commit() -应用分阶段替换
  • sr_cancel() -取消会话
  • sr_help() -获取帮助

发展

git clone 
cd SearchReplaceMcp
dotnet build SearchReplaceMcp.sln
dotnet test SearchReplaceMcp.sln

在开发过程中作为MCP服务器运行:

dotnet run --project SearchReplaceMcp.Cli/SearchReplaceMcp.Cli.csproj -- --mcp

要打包:

dotnet pack SearchReplaceMcp.Cli/SearchReplaceMcp.Cli.csproj --configuration Release

释放

发布由发布到NuGet Release 工作流,由推送触发 v* 标签。

  1. 碰撞 `SearchReplaceMcp.Cli/SearchReplaceMcp.Cli.csproj` 并承诺。
  2. 用匹配的版本标记提交,例如。 git tag v1.2.0.
  3. 按下标签: git push origin v1.2.0.

工作流验证标记是否与csproj版本匹配,构建、运行测试,并将包推送到NuGet。这 NUGET_API_KEY 必须配置存储库密钥。

许可证

MIT许可证

目录标签

目录标签

命令行工具C#Claude文本处理代码重构本地部署CLI工具MCP服务器正则表达式

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP