Expose MCP tools that mirror a git-like workflow for obfuscated editing:
- inspect files (
ls_tree,ls_files), - fetch obfuscated view (
pullor fullclone), - inspect workspace delta (
status), - apply delta back (
push).
ls_tree(root_dir, max_depth?, max_entries?, include_hidden?)ls_files(root_dir, max_entries?, include_hidden?)pull(root_dir, file_paths?, options.request_id)clone(root_dir, workspace_dir, options.request_id)status(workspace_dir, options.request_id)push(workspace_dir, options.request_id)
Each request_id stores mapping payload and session context:
- source root binding,
- optional workspace binding,
- baseline obfuscated file hashes for
status/pushdiff, - TTL/max-entry lifecycle.
- path traversal/null-byte/absolute path checks,
- symlink write/delete refusal,
- clone target must be empty and different from source root,
- push applies only within bound source root.
- MCP tools respect
<root_dir>/.gitignorewhen scanning project files. ls_treeandls_fileskeepinclude_hiddenas a separate switch for dot-paths;.gitignorefilters are still applied.pullwith explicitfile_pathsskips paths ignored by<root_dir>/.gitignore.
make lintmake testmake e2e-blackbox