FileMoverMcp
 ](https://www.nuget.org/packages/FileMoverMcp) ](https://www.nuget.org/packages/FileMoverMcp) 
一种文件移动工具,可以安全地暂存和执行文件移动。既可作为CLI工具,又可作为AI代理的MCP(模型上下文协议)服务器。
安装
dotnet tool install --global FileMoverMcpdotnet tool update --global FileMoverMcpdotnet 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 # Stage a file or directory move
fm mv --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
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许可证
