Omniscient Master Suite OMNISCIENT · 3.1

Bulk File Ops v1.0.0

Files & backup bulk-file-ops 4 actions MCP

Bulk-organise files in a folder: move everything of a given extension into a destination, sort files into date-based subfolders, or flatten a nested tree back to one level - every operation previews as a dry-run first and can be undone.

The omniscient:// link needs a protocol handler on your machine, which is not built yet. Until then it does nothing — use the commands below.

Actions

Jump to: move_by_extensionsort_by_dateflattenundo

Move by extension

move_by_extension Destructive

Move every file matching one or more extensions from a folder into a destination folder.

Inputs

NameTypeRequired / defaultValues and notes
folder path required
dest path required
extensions string required
recursive bool optional, default true
on_conflict enum optional, default rename renameskipoverwrite

Outputs

NameTypeNotes
moved int
skipped int
dest path
changes json

Sort by date

sort_by_date Destructive

Sort files into date-based subfolders (year, month or day), using the file's modified/created timestamp or a date found in its filename.

Inputs

NameTypeRequired / defaultValues and notes
folder path required
dest path optional, default ""
source enum optional, default modified modifiedcreatedfilename
granularity enum optional, default month yearmonthday
recursive bool optional, default false
on_conflict enum optional, default rename renameskipoverwrite

Outputs

NameTypeNotes
moved int
skipped int
dest path
changes json

Flatten folder

flatten Destructive

Move every file out of nested subfolders directly into the top-level folder, then remove the subfolders it emptied.

Inputs

NameTypeRequired / defaultValues and notes
folder path required
delete_empty bool optional, default true
on_conflict enum optional, default rename renameskipoverwrite

Outputs

NameTypeNotes
moved int
skipped int
removed_dirs int
changes json

Undo last operation

undo Destructive

Reverse the most recent move/sort/flatten run on a folder, using the journal Bulk File Ops keeps.

Inputs

NameTypeRequired / defaultValues and notes
folder path required

Outputs

NameTypeNotes
restored int
changes json

Use it

Move by extension

Command line

shell
python app.py --action move_by_extension --params '{"folder": "D:/path/to/folder", "dest": "D:/path/to/dest", "extensions": "<extensions>"}'

# preview first - destructive action, nothing is changed:
python app.py --action move_by_extension --params '{"folder": "D:/path/to/folder", "dest": "D:/path/to/dest", "extensions": "<extensions>"}' --dry-run

Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.

MCP tool

mcp
run_action("bulk-file-ops", "move_by_extension", {"folder": "D:/path/to/folder", "dest": "D:/path/to/dest", "extensions": "<extensions>"})

# preview first:
run_action("bulk-file-ops", "move_by_extension", {"folder": "D:/path/to/folder", "dest": "D:/path/to/dest", "extensions": "<extensions>"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "bulk-file-ops",
  "action": "move_by_extension",
  "params": {
    "folder": "D:/path/to/folder",
    "dest": "D:/path/to/dest",
    "extensions": "<extensions>"
  },
  "inputs": {}
}

Sort by date

Command line

shell
python app.py --action sort_by_date --params '{"folder": "D:/path/to/folder"}'

# preview first - destructive action, nothing is changed:
python app.py --action sort_by_date --params '{"folder": "D:/path/to/folder"}' --dry-run

Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.

MCP tool

mcp
run_action("bulk-file-ops", "sort_by_date", {"folder": "D:/path/to/folder"})

# preview first:
run_action("bulk-file-ops", "sort_by_date", {"folder": "D:/path/to/folder"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "bulk-file-ops",
  "action": "sort_by_date",
  "params": {
    "folder": "D:/path/to/folder"
  },
  "inputs": {}
}

Flatten folder

Command line

shell
python app.py --action flatten --params '{"folder": "D:/path/to/folder"}'

# preview first - destructive action, nothing is changed:
python app.py --action flatten --params '{"folder": "D:/path/to/folder"}' --dry-run

Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.

MCP tool

mcp
run_action("bulk-file-ops", "flatten", {"folder": "D:/path/to/folder"})

# preview first:
run_action("bulk-file-ops", "flatten", {"folder": "D:/path/to/folder"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "bulk-file-ops",
  "action": "flatten",
  "params": {
    "folder": "D:/path/to/folder"
  },
  "inputs": {}
}

Undo last operation

Command line

shell
python app.py --action undo --params '{"folder": "D:/path/to/folder"}'

# preview first - destructive action, nothing is changed:
python app.py --action undo --params '{"folder": "D:/path/to/folder"}' --dry-run

Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.

MCP tool

mcp
run_action("bulk-file-ops", "undo", {"folder": "D:/path/to/folder"})

# preview first:
run_action("bulk-file-ops", "undo", {"folder": "D:/path/to/folder"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "bulk-file-ops",
  "action": "undo",
  "params": {
    "folder": "D:/path/to/folder"
  },
  "inputs": {}
}

Example prompts

Things you can say to Claude, Cursor or Codex once the MCP server is registered.