get_file_historyLABSCO SUMMARY
Version history for work that never gets committed.
Git covers what you commit; this covers the hours in between, which is exactly where an agent's edits live. Snapshots are cheap because identical content is deduplicated and compressed, so autosave on a timer is affordable, and search_snapshots then lets you find a version of a file you did not know you wanted. The documentation generator's split limit is the practical touch — output sized for a context window rather than one enormous Markdown file.
What it is
A versioning and documentation system for a codebase, exposed in full over MCP. It takes deduplicated snapshots, compares them with unified, JSON or AST diffs, searches text across every snapshot, and generates Markdown documentation with directory trees and smart splitting. An autosave mode keeps taking snapshots in the background on a timer, on diff size, or a hybrid of both.
What you get
create_snapshot,list_snapshots,get_snapshot_detailsanddelete_snapshotmanage versionsdiff_versionscompares two refs, filtered to specific files, andget_file_historytracks one file across versionssearch_snapshotssearches text across every snapshot, andgenerate_changelogproduces a Keep-a-Changelog between two refsget_file_at_versionandlist_files_at_versionread a file or list a tree as it wasrestore_snapshotandrestore_filesrestore fully or partially;export_snapshotwrites a folder or an archivegenerate_documentationemits Markdown with a split limit, andpreview_structureshows the treestart_autosave,stop_autosaveandget_autosave_statuscontrol background versioninginit_project,apply_presetandmanage_ignore_rulesset it up for Python, Node.js, Go or web projects
Requirements
Python 3.10+ and Poetry — poetry install, then poetry run gencodedoc init --preset python to set a project up (package gencodedoc, published to PyPI). Three transports are available: stdio, SSE and a REST API. No account and no key; snapshots are stored locally with SHA256 deduplication and zstd compression, and it can manage several projects at once.
Setup effort
Build from source — git clone https://github.com/fkom13/gencodedoc.git
USE CASES
Keeping a rollback point while an agent edits your code
Snapshot before the work, then restore fully or just the files that went wrong.
Finding out when a line changed and why
Track the file's history across versions, then diff the two that matter.
Producing documentation the model can actually read
Generate Markdown with a split limit instead of one oversized file.
Writing a release changelog
Generate a Keep-a-Changelog between two refs from what actually changed.
26 tools
Listed in project docs. Your client may show a different list.
search_snapshotsgenerate_changelogcreate_snapshotlist_snapshotsget_snapshot_detailsrestore_snapshotrestore_filesdelete_snapshotdiff_versionsget_file_at_versionlist_files_at_versionexport_snapshotcleanup_orphaned_contentsgenerate_documentationpreview_structureget_project_statsinit_projectget_project_statusget_configset_config_valueapply_presetmanage_ignore_rulesstart_autosavestop_autosaveget_autosave_statusBEFORE YOU INSTALL
What to know first
Tools you get
26 tools named in the project's documentation.
Requires
- Python 3.10+
- Poetry
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/fkom13/gencodedoc.git
cd gencodedoc
poetry install
poetry env info --pathMCP Clients
Gemini CLI — stdio
Set command to the path printed by poetry env info --path with /bin/python appended, and PROJECT_PATH to the project you want versioned and documented (without it the server uses the directory it starts in).
{
"mcpServers": {
"gencodedoc": {
"command": "<YOUR_PATH_TO_VENV>/bin/python",
"args": [
"-m",
"gencodedoc.mcp.server_stdio"
],
"env": {
"PROJECT_PATH": "<YOUR_PROJECT_PATH>"
}
}
}
}