Labsco
MCP SERVER

GenCodeDoc

by fkom13

Snapshots a project, diffs versions and generates split Markdown documentation — 26 tools, same as the CLI.

Local Filesystem Access
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_details` and `delete_snapshot` manage versions
  • `diff_versions` compares two refs, filtered to specific files, and `get_file_history` tracks one file across versions
  • `search_snapshots` searches text across every snapshot, and `generate_changelog` produces a Keep-a-Changelog between two refs
  • `get_file_at_version` and `list_files_at_version` read a file or list a tree as it was
  • `restore_snapshot` and `restore_files` restore fully or partially; `export_snapshot` writes a folder or an archive
  • `generate_documentation` emits Markdown with a split limit, and `preview_structure` shows the tree
  • `start_autosave`, `stop_autosave` and `get_autosave_status` control background versioning
  • `init_project`, `apply_preset` and `manage_ignore_rules` set 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

One command — uvx gencodedoc