Git diff and markdown review with a web UI plus MCP stdio for AI agents.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A collaborative code and markdown review tool that bridges human reviewers and AI agents. Both can browse files, inspect git diffs, leave structured comments, and save a final review report — all from the same UI, in real time.

| Feature | Description |
|---|---|
| 3-panel review UI | File explorer + git changes on the left, viewer in the center, comment thread on the right |
| Markdown rendering | .md files are fully rendered, including GitHub-style math with KaTeX: inline $…$ and GitHub’s dollar-backtick inline form, display $$…$$ blocks, and fenced math code blocks; plus Mermaid fenced diagrams and WaveDrom fenced diagrams (digital timing diagrams, bit-field/register diagrams, and logic/schematic diagrams), each with a toolbar toggle between rendered and source views; highlight any paragraph to add a comment |
| HTML previewing | .html and .htm files render in a sandboxed center-panel preview with scripts disabled; select rendered elements, text, or a visual region to add source-backed comments, including a saved PNG crop for region comments |
| PDF viewing | .pdf files render in the center panel with page-aware text or region comments and reload support |
| DOCX/PPTX viewing | .docx and .pptx files render locally in the browser with docx-preview and @aiden0z/pptx-renderer; select document text or a normalized page/slide region to add comments, with Office region selections saved as PNG screenshots beside the review JSON/Markdown output, without LibreOffice or Microsoft Office |
| Office document safety | Office packages are fetched as binary data; git diff mode reports them as binary instead of showing misleading ZIP/XML text |
| Syntax highlighting | All common languages via Monaco Editor (Python, TypeScript, Go, Rust, etc.) |
| Inline git diff | Click changed files to view inline red/green unified diffs for local changes, a previous commit/ref vs HEAD, or current checkout vs a GitHub PR head |
| Structured comments | Each comment captures @filename:L10-15 line references automatically, with richer rendered-view anchors where useful; Office anchors include document kind, page/slide, normalized region, selected text, and a renderer fingerprint |
| Outdated recovery | When a text comment goes stale, refresh its stored highlight from the current file directly from the right panel |
| AI collaboration | MCP server exposes many tools so AI agents can review alongside humans — UI updates live, with on-screen notices for agent-driven comment changes. Also ships a token-efficient CLI client mode (batch-review <verb>) for coding agents and a Claude Code plugin with a review-workflow skill |
| Dual output | Saves review as both JSON (machine-readable) and Markdown (human-readable) |
| Resume session | On startup, if {output-dir}/{output}.json already exists, comments are loaded automatically |
| Cross-platform | Runs on Windows and Linux |
| Theme toggle | Switch the web UI between the original dark theme and a warm light theme from the left-panel top bar |
The preview uses the delimiter rules from Writing mathematical expressions: inline $…$, GitHub’s dollar-backtick inline form (rewritten to $…$ before parsing), display $$…$$, and fenced math code blocks. Rendering is KaTeX rather than GitHub’s MathJax, so a few uncommon macros can differ even when markdown syntax matches.
This app does not embed raw HTML in the markdown preview, so GitHub’s <span>$</span> workaround for literal dollar signs in prose is unavailable here—inside math, escape $ as \$ per GitHub’s docs.
Examples:
Inline: $\sqrt{3x-1}+(1+x)^2$
Dollar-backtick (GitHub-compatible): $e^{i\pi} + 1 = 0$
$$ \nabla_\theta J(\theta) = \mathbb{E}{(s, a) \sim \pi\theta} \left[\nabla_\theta \log \pi_\theta(a \mid s), R(s, a)\right] $$
Fenced ```wavedrom blocks are parsed as WaveJSON (via
JSON5, so unquoted/single-quoted keys are fine) and rendered inline, with the same
source/rendered toolbar toggle as Mermaid. Three diagram kinds are supported, selected
automatically from the JSON shape:
A digital timing diagram (signal):
A bit-field / register diagram (reg):
A logic / schematic diagram (assign):
At runtime, Batch Review is a single Python application that serves the browser UI, exposes REST and WebSocket endpoints for that UI, and optionally exposes the same review session to MCP clients.
/ws.AppState, so agent-created comments appear in the UI immediately.--mcp mode, the HTTP server keeps the web UI available while FastMCP also runs over stdio for editor and CLI hosts.batch-review <verb> (e.g. add-comment, diff) which calls the same REST endpoints — no MCP tool schemas loaded into agent context. The server writes .batch_review/server.json on startup so CLI verbs can discover it.batch-review-mcp — published wheels and sdist for pip / uv.io.github.hevangel/batch-review-mcp — latest published server metadata (JSON API; the registry site is still preview).The first run will automatically build the React frontend if frontend/dist/ does not exist (requires Node.js + npm on PATH).
The server auto-selects a free port in the 9000–9999 range if the default port is already in use.
The HTTP server starts in a background thread (so the browser UI remains accessible), your default browser opens to the app URL (same as standalone mode; use --no-browser to skip), and the MCP stdio transport runs in the main thread.
Claude Desktop config (claude_desktop_config.json):
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/batch-review)<a href="https://allmcps.com/mcp/batch-review"><img src="https://allmcps.com/api/badge/batch-review?style=directory" alt="Batch Review on AllMCPs" /></a>