文件移动工具

一个用于安全分阶段和执行文件移动的工具,可作为CLI工具和MCP(模型上下文协议)服务器使用。

  • by AdamTovatt
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 AdamTovatt/file-mover-mcp

使用说明

FileMoverMcp

一种文件移动工具,可以安全地暂存和执行文件移动。既可作为CLI工具,又可作为AI代理的MCP(模型上下文协议)服务器。

安装

dotnet tool install --global FileMoverMcp
dotnet tool update --global FileMoverMcp
dotnet tool uninstall --global FileMoverMcp

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

MCP设置

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

claude mcp add filemover -- fm --mcp

对于Cursor或其他MCP客户端,请将以下内容添加到MCP配置中:

{
  "mcpServers": {
    "filemover": {
      "command": "fm",
      "args": ["--mcp"]
    }
  }
}

用法

工作流程是:初始化会话、阶段移动、预览,然后提交(或取消)。

fm init [path]                      # Initialize at path (default: current directory)
fm mv <source> <dest>               # Stage a file or directory move
fm mv <source> <dest> --overwrite   # Allow overwriting existing destination
fm preview                          # See all staged moves
fm commit                           # Execute all staged moves
fm cancel                           # Discard all staged moves
fm help                             # Show help information

例子

# Move files on desktop
fm init "c:/users/adam/desktop"
fm mv "old-folder/file.png" "new-folder/file.png"
fm mv "document.txt" "archive/document-backup.txt"
fm preview
fm commit

# Move an entire directory
fm init
fm mv "source-folder" "dest-folder"
fm commit

# Overwrite an existing file
fm init
fm mv "source.txt" "destination.txt" --overwrite
fm commit

行为

目录是自动创建的

如果目标路径包含尚不存在的目录,则会自动创建它们。例如, fm mv "file.txt" "a/b/c/file.txt" 将创建 a/b/c/ 如果需要的话。

自动检测文件和目录

当你奔跑时 fm mv,该工具检查源代码是文件还是目录,并相应地处理它。目录移动保留了完整的内部结构,包括嵌套的子目录。

覆盖是可选的

如果目标已存在(文件或目录),则移动将被拒绝,除非您通过 --overwrite.与 --overwrite,现有的目的地被完全取代。

路径被沙盒化

所有路径都是相对于会话的基目录的。尝试引用它之外的路径将被拒绝。

会话共享

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

作为MCP服务器

fm --mcp

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

  • fm_init(path?: string) -初始化会话
  • fm_move(source: string, destination: string, overwrite: boolean) -采取行动
  • fm_preview() -预览分段动作
  • fm_commit() -执行分阶段移动
  • fm_cancel() -取消会话
  • fm_help() -获取帮助

发展

git clone <repository-url>
cd FileMoverMcp
dotnet build FileMoverMcp.sln
dotnet test FileMoverMcp.sln

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

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

要打包:

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

许可证

MIT许可证