Next AI Draw.io
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
Description from the maker (original English)
Local file and media tools: images, PDF, audio, video, OCR, batch and metadata. Runs locally.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"lathe": {
"command": "uvx",
"args": [
"lathe-mcp"
]
}
}
}Run this in your terminal
claude mcp add lathe -- uvx lathe-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"lathe": {
"command": "uvx",
"args": [
"lathe-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"lathe": {
"type": "stdio",
"command": "uvx",
"args": [
"lathe-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account seayniclabs, which owns the repo
Code last changed 7 days ago
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 7 days ago, and the latest version (0.4.1) reached the registry 14 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Next AI Draw.io, Pascal 3D Editor, screenpipe
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
Create, inspect, validate, and save editable 3D building scenes with Pascal's MCP server.
Search your local screen recordings, audio transcripts, and computer activity from screenpipe.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Made by [Seaynic Labs](https://seayniclabs.com). Need tools like this built around your own systems? We do that.
Lathe is an MCP bundle for anyone who handles files and media. It gives your AI assistant local tools for images, PDFs, audio and video, and OCR, plus batch runs and metadata removal. The files stay on your machine.
It is a bundle: one server made of modules, each switched on or off. Modules that arrive in an update and are off by default stay off until you turn them on.
| Security card | |
|---|---|
| Network | None. Lathe makes no network connections, and ffmpeg and ffprobe are restricted to local files (-protocol_whitelist file,pipe). --transport http listens on 127.0.0.1 only when you start it that way. |
| Files | Reads and writes files only inside the working folder (LATHE_WORKING_DIR). Reads its optional config file (~/.config/lathe/config.toml). Writes one local approval log (~/.local/state/lathe/approvals.jsonl). |
| Secrets | No keys, accounts or passwords. Nothing to store, and nothing that leaves the machine. |
| Read-only tools | 8: image_info, pdf_info, pdf_extract_text, audio_info, video_info, ocr_image, health, lathe_modules |
| Writes new files | audio_convert, batch_process, image_convert, image_crop, image_optimize, image_resize, image_thumbnail, pdf_compress, pdf_merge, pdf_split, pdf_to_images, scrub_metadata, video_thumbnail, video_to_gif, video_trim: each call writes new files in the working folder and never overwrites an existing one unless the call passes overwrite=true. batch_process asks the person once per run of two or more files, and nothing else asks. |
| Startup cost | about 7,600 tokens for a default install (21 tools, 4 skill prompts) |
| Changes | Tool descriptions are locked by hash (tool-manifest.lock.json); CI fails if they change silently. |
| Module | What it does | On by default | Needs |
|---|---|---|---|
images | Info, resize, convert, optimize, crop, thumbnail | yes | Pillow (always installed) |
pdf | Info, text (OCR for scanned pages), merge, render pages, split, compress | yes | pdf extra; ghostscript for rendering |
media | Audio and video info, audio convert, a frame, trim, GIF | yes | ffmpeg and ffprobe |
ocr | Text from an image | yes | ocr extra; tesseract |
batch | One operation over every file matching a glob, dry run first | no | per operation (see above) |
privacy | Inspect and remove GPS, camera and author metadata | no | pdf extra, for PDFs |
Lathe is free and MIT licensed. It has 21 tools by default and 23 with batch and privacy on.
Skills explain how to do a job well. Your AI assistant reads them as Agent Skills, or as MCP prompts in any MCP app.
| Skill | Use it for |
|---|---|
getting-started | Setup, the install command for each missing piece, --doctor, and the approval rules |
pdf | Turning a Markdown file into a PDF with Chrome or Chromium |
pdf-forms | Making a PDF with fillable text boxes and checkboxes |
web-image-prep | Removing location data and shrinking a folder of photos for a website |
uvx --from "lathe-mcp[pdf,ocr]" lathe --version prints the version. Needs Python 3.11 or newer and uv.LATHE_WORKING_DIR to the folder with your files.lathe --doctor (uvx --from "lathe-mcp[pdf,ocr]" lathe --doctor). It prints ok or FIX for each piece and the command that fixes it.lathe_modules. It lists every module, what is on, and what is missing.Paste these into your assistant, after setting LATHE_WORKING_DIR:
Call lathe_modules and tell me which pieces are missing.Show me the metadata in photos/trip.jpg, then make a copy without it as photos/trip-clean.jpg. (needs LATHE_PRIVACY_ENABLED=true)Dry-run image_optimize on everything in photos/ into web/, then run it. (needs LATHE_BATCH_ENABLED=true)Split report.pdf into parts of 5 pages in parts/.Cut the first 10 seconds of clip.mp4 into clip-10s.mp4, then make a 5-second GIF from it.Lathe needs Python 3.11 or newer. With uv you don't install anything ahead of time. Choose the extras for the modules you use:
uvx --from lathe-mcp lathe --version # images, media and batch
uvx --from "lathe-mcp[pdf,ocr]" lathe --version # with PDF and OCR
Pinned to this release, for a repeatable setup:
uvx --from "lathe-mcp[pdf,ocr]==0.4.1" lathe --version
Or with pip:
pip install "lathe-mcp[pdf,ocr]"
Extras: pdf (pypdf), ocr (pytesseract), full (both). The images module needs nothing extra.
The repository is also a Claude Code plugin. Its .mcp.json pins lathe-mcp[pdf,ocr]==0.4.1, and it ships the skills in skills/. The plugin is one way to install; the MCP config below works in any client.
Lathe starts without these. lathe --doctor and the lathe_modules tool list what is missing and the command for your platform.
| Program | Used by | macOS | Debian / Ubuntu |
|---|---|---|---|
| ffmpeg (includes ffprobe) | media, batch (audio) | brew install ffmpeg | sudo apt install ffmpeg |
| tesseract | ocr, and pdf_extract_text on scanned pages | brew install tesseract | sudo apt install tesseract-ocr |
| ghostscript | pdf_to_images, batch (PDF) | brew install ghostscript | sudo apt install ghostscript |
Set these as environment variables in your MCP client's config, or in a config file. Lathe starts without any of them.
| Variable | What it is |
|---|---|
LATHE_WORKING_DIR | The folder Lathe reads from and writes to. Default: the folder the server starts in. |
LATHE_MAX_FILE_MB | Largest input file, in MB. Default 500. |
LATHE_OCR_LANG | Tesseract language code(s), e.g. eng or eng+fra. Default eng. |
LATHE_ _ENABLED | true or false. Default true for images, pdf, media and ocr; false for batch and privacy. |
LATHE_BATCH_PREAPPROVED | true lets a batch run of two or more files go ahead without the approval prompt. Default false. Set it only if your client cannot show approval prompts. |
LATHE_APPROVAL_LOG | Where the approval log is written. Default ~/.local/state/lathe/approvals.jsonl. |
Config file (optional). Lathe also reads ~/.config/lathe/config.toml, or the file named by LATHE_CONFIG. Environment variables win over the file.
[core]
working_dir = "/Users/you/Pictures"
[ocr] lang = "eng"
[batch] enabled = true
[privacy] enabled = true
Every client below runs Lathe as a local process over stdio. Put the env values only where you need them.
Claude Desktop: claude_desktop_config.json (Settings, Developer, Edit Config)
{
"mcpServers": { "lathe": { "command": "uvx", "args": ["--from", "lathe-mcp[pdf,ocr]", "lathe"], "env": { "LATHE_WORKING_DIR": "/path/to/your/files", "LATHE_BATCH_ENABLED": "true", "LATHE_PRIVACY_ENABLED": "true" } } } }
Claude Code
claude mcp add lathe -e LATHE_WORKING_DIR=/path/to/your/files -- uvx --from "lathe-mcp[pdf,ocr]" lathe
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
"mcpServers": { "lathe": { "command": "uvx", "args": ["--from", "lathe-mcp[pdf,ocr]", "lathe"], "env": { "LATHE_WORKING_DIR": "/path/to/your/files" } } } }
VS Code: .vscode/mcp.json (note "servers", not "mcpServers")
{
"servers": { "lathe": { "type": "stdio", "command": "uvx", "args": ["--from", "lathe-mcp[pdf,ocr]", "lathe"], "env": { "LATHE_WORKING_DIR": "/path/to/your/files" } } } }
Sonique, Hermes, OpenClaw, and other clients: any client that launches a stdio MCP server. Command uvx, arguments ["--from", "lathe-mcp[pdf,ocr]", "lathe"], plus the env values above.
Over HTTP. For clients that connect to a URL instead of starting a process:
lathe --transport http --port 8765
It serves streamable HTTP at http://127.0.0.1:8765/mcp. It listens only on your own machine by default. Put authentication in front of it before exposing it anywhere else.
| Tool | Module | What it does | Asks first |
|---|---|---|---|
health | core | Server version, working folder, and whether each external program is installed | no |
lathe_modules | core | Which modules are on, what is missing (with the install command), skills, and what each tool needs | no |
image_info | images | Width, height, format, mode, size, and EXIF tags | no |
image_resize | images | Resize by width, height or percentage, keeping the aspect ratio | no |
image_convert | images | Convert to png, jpeg, webp, avif or bmp | no |
image_optimize | images | Shrink for web delivery; metadata stripped unless strip_metadata=false | no |
image_crop | images | Crop a rectangle | no |
image_thumbnail | images | Fit inside a square | no |
pdf_info | Page count, size, encryption, title, author | no | |
pdf_extract_text | Text of the pages you name, or of the whole file; OCR for pages without a text layer; long text in parts | no | |
pdf_merge | Merge PDFs in order | no | |
pdf_to_images | Render pages to PNG or JPEG at a chosen DPI | no | |
pdf_split | Split into parts of N pages | no | |
pdf_compress | Lossless smaller copy: content streams and duplicate objects | no | |
audio_info | media | Duration, format, bitrate, sample rate, channels | no |
audio_convert | media | Convert to mp3, wav, flac, aac or ogg | no |
video_info | media | Duration, resolution, codec, frame rate, audio tracks | no |
video_thumbnail | media | Save one frame at a time in seconds | no |
video_trim | media | Cut a section (stream copy; cuts land on keyframes) | no |
video_to_gif | media | Animated GIF from up to 30 seconds of video | no |
ocr_image | ocr | Text from an image; long text in parts | no |
batch_process | batch | One operation over every matching file; dry run by default | yes, for runs of 2+ files |
scrub_metadata | privacy | Inspect (default), or write a copy without GPS, camera or author metadata | no |
Every tool returns structured data with a published schema. Long text comes in parts: pass next_offset back as offset. Errors always read lathe. . : Fix: .
Only batch_process asks, and only for a run of two or more files. The client shows the person one plan: the operation, the output folder, whether existing outputs may be replaced, the file count and up to ten file names. The person approves or declines once for the whole run. The model cannot answer for the person. A client that cannot show prompts gets approval_unavailable, with the setting that fixes it (LATHE_BATCH_PREAPPROVED=true).
Every other writing tool writes one new file per call without asking. None of them overwrites an existing file unless the call passes overwrite=true.
LATHE_WORKING_DIR. Inputs and outputs must stay inside it. Symlinks that point outside are refused.overwrite=true. An output can never be the input file.batch_process refuses an output folder t