Lathe について
Latheは、画像、PDF、音声、動画、OCRを扱うアシスタント向けのローカルMCPツール群です。モジュール式のツールは指定フォルダー内のファイルを処理し、ネットワーク接続を行いません。
主な機能
- 01画像情報の確認、変換、サイズ変更、切り抜き
- 02PDFのテキスト抽出、結合、分割、圧縮
- 03音声変換、動画のトリミングとGIF作成
- 04画像とスキャンPDFページのOCR
- 05オプションの一括処理とメタデータ削除
活用シーン
- 01Web向け画像のサイズ変更と最適化
- 02スキャンページを含むPDFからのテキスト抽出
- 03動画のトリミングとGIF作成
- 04ファイルの一括処理や写真の位置情報削除
MCP 対応
MCPクライアントにローカルのファイル・メディアツール、スキル、プロンプトを提供します。クライアントからstdioで起動するか、ローカルHTTPエンドポイントに接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
21掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| input_path | string | はい |
詳細
Lathe
Seaynic Labs が開発しています。 ビジネス独自のシステムに対応する、このようなツールを構築しています。カスタム連携についてはこちら。
Lathe は、ファイルやメディアを扱うすべての人向けの MCP バンドルです。画像、PDF、音声、動画、OCR 向けのローカルツールに加え、一括処理やメタデータの削除機能を AI アシスタントに提供します。ファイルがマシンの外に出ることはありません。
これはバンドルです。モジュールで構成された 1 つのサーバーで、モジュールは個別に有効・無効を切り替えられます。アップデートで追加されたモジュールは、デフォルトで無効の場合、有効にするまで無効のままです。
| セキュリティカード | |
|---|---|
| ネットワーク | なし。Lathe はネットワーク接続を行わず、ffmpeg と ffprobe はローカルファイルのみに制限されています(-protocol_whitelist file,pipe)。--transport http は、その設定で起動した場合に限り、127.0.0.1 のみでリッスンします。 |
| ファイル | 作業フォルダー(LATHE_WORKING_DIR)内のファイルのみを読み書きします。任意の設定ファイル( |
| シークレット | キー、アカウント、パスワードはありません。保存するものも、マシンから外に出るものもありません。 |
| 読み取り専用ツール | 8 個:image_info、pdf_info、pdf_extract_text、audio_info、video_info、ocr_image、health、lathe_modules |
| 新しいファイルを書き込み | 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:いずれも呼び出しごとに作業フォルダー内へ新しいファイルを書き込み、呼び出しで overwrite=true が渡されない限り既存ファイルを上書きしません。batch_process は、2 個以上のファイルを処理する場合に、1 回の実行につき 1 度だけ確認します。それ以外のツールでは確認はありません。 |
| 起動時のコスト | デフォルトのインストールでは約 7,600 トークン(21 個のツール、4 個のスキルプロンプト) |
| 変更 | ツールの説明はハッシュ(tool-manifest.lock.json)で固定されており、説明が予告なく変更された場合は CI が失敗します。 |
モジュール
| モジュール | 機能 | デフォルトで有効 | 必要なもの |
|---|---|---|---|
images | 情報の取得、サイズ変更、変換、最適化、切り抜き、サムネイル作成 | はい | Pillow(常にインストール済み) |
pdf | 情報の取得、テキストの抽出(スキャンしたページは OCR)、結合、ページのレンダリング、分割、圧縮 | はい | pdf extra、レンダリングには ghostscript |
media | 音声と動画の情報取得、音声変換、フレームの取得、トリミング、GIF 作成 | はい | ffmpeg と ffprobe |
ocr | 画像からテキストを抽出 | はい | ocr extra、tesseract |
batch | glob に一致するすべてのファイルに対して 1 つの操作を実行(最初にドライラン) | いいえ | 操作ごとに異なります(上記参照) |
privacy | GPS、カメラ、作成者のメタデータを確認・削除 | いいえ | PDF の場合は pdf extra |
Lathe は無料で、MIT ライセンスです。デフォルトでは 21 個、batch と privacy を有効にすると 23 個のツールを利用できます。
スキル
スキルは、タスクを適切に行う方法を説明します。AI アシスタントはこれらを Agent Skills として、または MCP アプリでは MCP プロンプトとして読み込みます。
| スキル | 用途 |
|---|---|
getting-started | セットアップ、不足している各コンポーネントのインストールコマンド、--doctor、承認ルール |
pdf | Chrome または Chromium を使って Markdown ファイルを PDF に変換 |
pdf-forms | 入力可能なテキストボックスとチェックボックスを備えた PDF の作成 |
web-image-prep | 位置情報を削除し、ウェブサイト用に写真フォルダーを縮小 |
最初の 5 分
- インストールします:
uvx --from "lathe-mcp[pdf,ocr]" lathe --versionを実行するとバージョンが表示されます。Python 3.11 以降と uv が必要です。 - クライアントに Lathe を追加します(MCP クライアントに追加するを参照)。
LATHE_WORKING_DIRにファイルがあるフォルダーを設定します。 lathe --doctor(uvx --from "lathe-mcp[pdf,ocr]" lathe --doctor)を実行します。各コンポーネントについてokまたはFIXと、修正するコマンドが表示されます。- アシスタントに
lathe_modulesを呼び出すよう依頼します。有効なモジュールと不足しているモジュールを含む、すべてのモジュールが一覧表示されます。
お試しください
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.(LATHE_PRIVACY_ENABLED=trueが必要です)Dry-run image_optimize on everything in photos/ into web/, then run it.(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 の実行には Python 3.11 以降が必要です。uv を使えば、事前に何もインストールする必要はありません。使用するモジュールに応じて追加機能を選んでください。
uvx --from lathe-mcp lathe --version # images, media and batch
uvx --from "lathe-mcp[pdf,ocr]" lathe --version # with PDF and OCR
再現可能なセットアップのため、このリリースに固定する場合:
uvx --from "lathe-mcp[pdf,ocr]==0.4.1" lathe --version
または pip を使用する場合:
pip install "lathe-mcp[pdf,ocr]"
追加機能:pdf(pypdf)、ocr(pytesseract)、full(両方)。images モジュールに追加の依存関係はありません。
Claude Code プラグイン
このリポジトリは Claude Code プラグインでもあります。.mcp.json では lathe-mcp[pdf,ocr]==0.4.1 が固定されており、skills/ のスキルが含まれています。このプラグインはインストール方法の一つです。以下の MCP 設定は、どのクライアントでも使用できます。
システムプログラム
Lathe はこれらがなくても起動します。lathe --doctor コマンドと lathe_modules ツールで、不足しているものとお使いのプラットフォーム用のコマンドを確認できます。
| プログラム | 使用モジュール | macOS | Debian / Ubuntu |
|---|---|---|---|
| ffmpeg(ffprobe を含む) | media、batch(音声) | brew install ffmpeg | sudo apt install ffmpeg |
| tesseract | ocr、およびスキャンページでの pdf_extract_text | brew install tesseract | sudo apt install tesseract-ocr |
| ghostscript | pdf_to_images、batch(PDF) | brew install ghostscript | sudo apt install ghostscript |
設定
これらは、MCP クライアントの設定で環境変数として設定するか、設定ファイルに記述してください。Lathe はこれらが設定されていなくても起動します。
| 変数 | 内容 |
|---|---|
LATHE_WORKING_DIR | Lathe が読み書きするフォルダーです。デフォルト:サーバーの起動時にいるフォルダー。 |
LATHE_MAX_FILE_MB | 入力ファイルの最大サイズ(MB)です。デフォルトは 500 です。 |
LATHE_OCR_LANG | Tesseract の言語コードです。複数指定できます(例:eng または eng+fra)。デフォルトは eng です。 |
LATHE_<MODULE>_ENABLED | true または false です。デフォルトは images、pdf、media、ocr では true、batch と privacy では false です。 |
LATHE_BATCH_PREAPPROVED | true にすると、2 つ以上のファイルに対する一括実行を、承認プロンプトなしで開始できます。デフォルトは false です。クライアントで承認プロンプトを表示できない場合にのみ設定してください。 |
LATHE_APPROVAL_LOG | 承認ログの書き込み先です。デフォルトは ~/.local/state/lathe/approvals.jsonl です。 |
設定ファイル(任意)。 Lathe は ~/.config/lathe/config.toml、または LATHE_CONFIG で指定されたファイルも読み込みます。環境変数はファイルの設定より優先されます。
[core]
working_dir = "/Users/you/Pictures"
[ocr]
lang = "eng"
[batch]
enabled = true
[privacy]
enabled = true
MCP クライアントに追加する
以下の各クライアントでは、Lathe を stdio 経由のローカルプロセスとして実行します。env の値は、必要な場所にだけ設定してください。
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、またはプロジェクト内の .cursor/mcp.json
{
"mcpServers": {
"lathe": {
"command": "uvx",
"args": ["--from", "lathe-mcp[pdf,ocr]", "lathe"],
"env": { "LATHE_WORKING_DIR": "/path/to/your/files" }
}
}
}
VS Code:.vscode/mcp.json("mcpServers" ではなく "servers" を使用してください)
{
"servers": {
"lathe": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "lathe-mcp[pdf,ocr]", "lathe"],
"env": { "LATHE_WORKING_DIR": "/path/to/your/files" }
}
}
}
Sonique、Hermes、OpenClaw、その他のクライアント:stdio MCP サーバーを起動するクライアントであれば使用できます。コマンドには uvx、引数には ["--from", "lathe-mcp[pdf,ocr]", "lathe"] を指定し、上記の env の値を追加してください。
HTTP 経由。 プロセスを起動するのではなく、URL に接続するクライアントの場合:
lathe --transport http --port 8765
ストリーミング可能な HTTP を http://127.0.0.1:8765/mcp で提供します。デフォルトでは、お使いのマシン上でのみ待ち受けます。ほかの場所に公開する前に、認証を設定してください。
ツール
| ツール | モジュール | 機能 | 事前確認 |
|---|---|---|---|
health | core | サーバーのバージョン、作業フォルダー、各外部プログラムがインストールされているかどうか | いいえ |
lathe_modules | core | 有効なモジュール、不足しているもの(インストールコマンド付き)、スキル、各ツールが必要とするもの | いいえ |
image_info | images | 幅、高さ、形式、モード、サイズ、EXIF タグ | いいえ |
image_resize | images | アスペクト比を保ちながら、幅、高さ、またはパーセンテージでサイズ変更 | いいえ |
image_convert | images | png、jpeg、webp、avif、bmp に変換 | いいえ |
image_optimize | images | ウェブ配信用に縮小。strip_metadata=false の場合を除き、メタデータを削除 | いいえ |
image_crop | images | 矩形領域を切り抜き | いいえ |
image_thumbnail | images | 正方形の枠内に収める | いいえ |
pdf_info | ページ数、サイズ、暗号化、タイトル、作成者 | いいえ | |
pdf_extract_text | 指定したページ、またはファイル全体のテキスト。テキストレイヤーのないページには OCR を使用。長いテキストは分割して返す | いいえ | |
pdf_merge | PDF を順番に結合 | いいえ | |
pdf_to_images | 指定した DPI でページを PNG または JPEG にレンダリング | いいえ | |
pdf_split | N ページ単位に分割 | いいえ | |
pdf_compress | コンテンツストリームと重複オブジェクトを対象に、品質を損なわずファイルサイズを縮小したコピーを作成 | いいえ | |
audio_info | media | 再生時間、形式、ビットレート、サンプルレート、チャンネル数 | いいえ |
audio_convert | media | mp3、wav、flac、aac、ogg に変換 | いいえ |
video_info | media | 再生時間、解像度、コーデック、フレームレート、音声トラック | いいえ |
video_thumbnail | media | 秒単位で指定した時点のフレームを 1 枚保存 | いいえ |
video_trim | media | 一部分を切り出し(ストリームコピー。切り出し位置はキーフレームに合わせられます) | いいえ |
video_to_gif | media | 最大 30 秒の動画からアニメーション GIF を作成 | いいえ |
ocr_image | ocr | 画像内のテキスト。長いテキストは分割して返す | いいえ |
batch_process | batch | 条件に一致するすべてのファイルに 1 つの操作を実行。デフォルトではドライラン | 2 ファイル以上の実行では必要 |
scrub_metadata | privacy | メタデータを調べる(デフォルト)、または GPS、カメラ、作成者のメタデータを含まないコピーを書き出す | いいえ |
すべてのツールは、公開されたスキーマに従って構造化データを返します。長いテキストは分割されます。next_offset を offset として渡してください。エラーは常に lathe.<module>.<code>: <message> Fix: <hint> の形式で表示されます。
承認
確認を求めるのは batch_process のみで、2 ファイル以上の実行時に限られます。クライアントは、操作内容、出力フォルダー、既存の出力を置き換える可能性の有無、ファイル数、最大 10 件のファイル名を含む計画をユーザーに 1 つ表示します。ユーザーは実行全体を一度に承認または拒否します。モデルがユーザーの代わりに回答することはできません。プロンプトを表示できないクライアントには approval_unavailable が返され、その問題を解決する設定(LATHE_BATCH_PREAPPROVED=true)も示されます。
それ以外の書き込みツールは、確認を求めず、呼び出しごとに新しいファイルを 1 つ書き込みます。overwrite=true を指定しない限り、既存のファイルを上書きすることはありません。
ファイルと安全性
- 作業フォルダー。 相対パスは
LATHE_WORKING_DIRを基準に解決されます。入力と出力はこのフォルダー内にとどまる必要があります。フォルダー外を指すシンボリックリンクは拒否されます。 - 誤って上書きされることはありません。 既存の出力は、呼び出しで
overwrite=trueを指定しない限り拒否されます。出力に入力ファイルを指定することはできません。 - バッチ実行では入力ファイルに変更を加えません。
batch_processは、入力フォルダーを出力フォルダーに指定すると拒否し、すでに存在する出力はスキップします。 - 書き込みはアトミックです。 ファイルは一時ファイル名で書き込まれてから所定の場所に移動されるため、失敗しても中途半端なファイルが残ることはありません。
- ローカルのみ。 Lathe はネットワーク接続を行わず、ffmpeg と ffprobe はローカルファイルのみを開きます。
- サイズ制限。
LATHE_MAX_FILE_MB(デフォルトでは 500 MB)を超える入力は拒否されます。
セキュリティ
問題の報告方法と、Lathe が行わないことについては、SECURITY.md を参照してください。承認ログ ~/.local/state/lathe/approvals.jsonl には、各リクエスト、承認、却下、拒否が記録されます。ファイルの内容が記録されることはありません。
tool-manifest.lock.json には、すべてのツールの説明、プロンプト、サーバー指示のハッシュが記録されます。python3 scripts/tool_lock.py --check を実行すると、リリース以降に変更があったかどうかを確認できます。
開発
uv venv -p 3.11 .venv && uv pip install -p .venv/bin/python -e '.[dev]'
.venv/bin/pytest -q
python3 scripts/check_skills.py
.venv/bin/python scripts/tool_lock.py --check
.venv/bin/python scripts/security_card.py --check
テストでは、独自のフィクスチャを生成します。ffmpeg、tesseract、ghostscript が必要なテストは、プログラムが見つからない場合にスキップされます。
ライセンス
MIT。作者:Seaynic Labs。サードパーティのライブラリとプログラムは CREDITS.md に記載されています。
Seaynic Labs が開発しました。 当社は、各バッチ実行を担当者が承認するローカル優先の仕組みで、企業独自のシステムに合わせたこのようなツールを開発しています。カスタム統合についてをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。