move_file
Move or rename files and directories within predefined paths in the MCP Filesystem Server. Specify source and destination paths to relocate or rename files while ensuring path validation and preventing overwrites.
Instructions
Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | Destination path where to move the file or directory | |
| source | Yes | Source path of the file or directory to move |
Implementation Reference
- src/index.ts:577-604 (handler)The main handler for the 'move_file' tool. Validates input using MoveFileArgsSchema, resolves and validates source and destination paths using validatePath, ensures destination directory exists with fs.mkdir (recursive), performs the move with fs.rename, logs the action, and returns a success message.case 'move_file': { const parsed = MoveFileArgsSchema.safeParse(a) if (!parsed.success) { throw new FileSystemError(`Invalid arguments for ${name}`, 'INVALID_ARGS', undefined, { errors: parsed.error.format(), }) } const validSourcePath = await validatePath(parsed.data.source, config) const validDestPath = await validatePath(parsed.data.destination, config) // Ensure the destination parent directory exists const destDir = path.dirname(validDestPath) await fs.mkdir(destDir, { recursive: true }) await fs.rename(validSourcePath, validDestPath) await logger.debug(`Moved file from ${validSourcePath} to ${validDestPath}`) endMetric() return { content: [ { type: 'text', text: `Successfully moved ${parsed.data.source} to ${parsed.data.destination}`, }, ], } }
- src/index.ts:128-131 (schema)Zod schema definition for the 'move_file' tool input arguments: source and destination paths.const MoveFileArgsSchema = z.object({ source: z.string().describe('Source path of the file or directory to move'), destination: z.string().describe('Destination path where to move the file or directory'), })
- src/index.ts:297-305 (registration)Registration of the 'move_file' tool in the list_tools response, including name, description, and input schema reference.{ name: 'move_file', description: 'Move or rename files and directories. Can move files between directories ' + 'and rename them in a single operation. If the destination exists, the ' + 'operation will fail. Works across different directories and can be used ' + 'for simple renaming within the same directory. Both source and destination must be within allowed directories.', inputSchema: zodToJsonSchema(MoveFileArgsSchema) as ToolInput, },