Lathe
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LATHE_CONFIG | No | Optional path to a config file. Lathe otherwise reads ~/.config/lathe/config.toml. | |
| LATHE_OCR_LANG | No | Tesseract language code(s), e.g. eng or eng+fra. Default eng. | eng |
| LATHE_MAX_FILE_MB | No | Largest input file, in MB. Default 500. | 500 |
| LATHE_OCR_ENABLED | No | Set to false to turn the ocr module off. Default true. | true |
| LATHE_PDF_ENABLED | No | Set to false to turn the pdf module off. Default true. | true |
| LATHE_WORKING_DIR | No | The folder Lathe reads from and writes to. Default: the folder the server starts in. | |
| LATHE_MEDIA_ENABLED | No | Set to false to turn the media module off. Default true. | true |
| LATHE_IMAGES_ENABLED | No | Set to false to turn the images module off. Default true. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| image_infoB | Image metadata: width, height, format, mode, file size, and EXIF tags (capped). |
| image_resizeA | Resize an image by width, height, or percentage. Keeps the aspect ratio when only one dimension is given. Output format comes from the output extension. |
| image_convertB | Convert an image to png, jpeg, webp, avif or bmp. The output extension must match. |
| image_optimizeB | Shrink an image for web delivery. Metadata is stripped unless strip_metadata=false. |
| image_cropC | Crop a rectangle from an image. x and y are pixels from the top-left corner. |
| image_thumbnailC | Make a thumbnail that fits inside a square of the given size, keeping the aspect ratio. |
| pdf_infoC | PDF metadata: page count, file size, encryption, title, author and creator. |
| pdf_extract_textA | Extract text from a PDF, or from some pages ("2-5"). Pages with no text layer are read with OCR when it is installed. Long text comes in parts: pass next_offset as offset to continue. |
| pdf_mergeA | Merge several PDFs, in the order given, into one new PDF. |
| pdf_to_imagesB | Render PDF pages to PNG or JPEG files in a folder, at a chosen DPI. Needs ghostscript. |
| pdf_splitA | Split a PDF into parts of N pages each. Writes new PDFs into a folder and never overwrites one unless overwrite=true. |
| pdf_compressA | Write a smaller copy of a PDF. Lossless: it recompresses content streams and removes duplicate objects; images are not re-encoded. Writes one new file; never overwrites unless overwrite=true. |
| audio_infoB | Audio metadata: duration, format, bitrate, sample rate, channels and codec. |
| audio_convertA | Convert audio to mp3, wav, flac, aac or ogg. A video input keeps only its audio. The output extension must match the format. |
| video_infoC | Video metadata: duration, resolution, codec, frame rate, bitrate and audio tracks. |
| video_thumbnailB | Save one frame of a video as a PNG or JPEG, at a time in seconds. |
| video_trimA | Cut a section out of a video into a new file (stream copy, so it is fast and lossless; cuts land on keyframes). Never overwrites unless overwrite=true. |
| video_to_gifA | Make an animated GIF from part of a video (up to 30 seconds, palette-optimized). Writes one new file; never overwrites unless overwrite=true. |
| ocr_imageA | Extract the text from an image with OCR. Long text comes in parts: pass next_offset as offset to continue. lang overrides LATHE_OCR_LANG. |
| healthA | Server status, version, working directory, and whether each external piece is installed. |
| lathe_modulesA | Which modules are on, which pieces are missing (with the install command), and what each tool does. Pass a module name for its settings too. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| getting-started | Set up and check the Lathe MCP bundle (images, PDF, audio and video, OCR, batch runs, metadata removal). Use when the user installs Lathe, asks what Lathe can do, gets a "lathe." error from a tool, sees a "missing" or "approval_unavailable" result, or wants to turn a module on or off. |
| Convert a Markdown file to a PDF with Chrome or Chromium in headless mode. Use when the user asks to turn a Markdown note, report or spec into a PDF and Chrome or Chromium is installed. Lathe's own PDF tools do not render Markdown. | |
| pdf-forms | Make a PDF with real fillable fields (text boxes and checkboxes that a reader can tick or type in) from a page layout, for planners, trackers, checklists and order forms. Use when the user needs a PDF that people fill in on screen, not a static printable. Lathe's pdf tools read and split fields but do not create them. |
| web-image-prep | Prepare a folder of photos or screenshots for a website or post: remove GPS and camera metadata, resize, and optimize each file in one batch run. Use when the user wants to shrink, convert or clean photos before uploading them, or asks to remove location data from a picture. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| getting-started/SKILL.md | |
| pdf/SKILL.md | |
| pdf-forms/SKILL.md | |
| web-image-prep/SKILL.md |
TDQS
Scored across 21 tools
Each tool pairs a distinct resource (audio/video/image/pdf) with a clear action, so most selections are unambiguous. The only mild friction is among the image group (image_resize vs image_thumbnail vs image_optimize) and the fact that 'convert' exists for audio and image but has no video counterpart, which can prompt an agent to look for a tool that isn't there.
The dominant pattern is <resource>_<action> (audio_convert, pdf_split, image_crop, video_trim), applied consistently across all four media domains. Two outliers break the pattern: the bare 'health' and the namespace-style 'lathe_modules'.
21 tools is on the heavy side, but the server spans four distinct media domains, giving roughly 5-6 tools per domain plus two server-introspection tools. Each tool covers a concrete operation, so nothing feels padded, though a slight trim would still be possible.
Image and PDF coverage is strong (convert/resize/crop/optimize/info and merge/split/compress/extract_text/to_images/info). Notable gaps remain: there is no video_convert, video_resize, or video_compress, and no way to reorder/delete PDF pages, so agents hitting those common tasks will dead-end.