mcpField
L
Lathe

Lathe

ローカル
github.com/seayniclabsメディア・デザイン01 日前に更新

Lathe について

Latheは、画像、PDF、音声、動画、OCRを扱うアシスタント向けのローカルMCPツール群です。モジュール式のツールは指定フォルダー内のファイルを処理し、ネットワーク接続を行いません。

主な機能

  1. 01画像情報の確認、変換、サイズ変更、切り抜き
  2. 02PDFのテキスト抽出、結合、分割、圧縮
  3. 03音声変換、動画のトリミングとGIF作成
  4. 04画像とスキャンPDFページのOCR
  5. 05オプションの一括処理とメタデータ削除

活用シーン

  1. 01Web向け画像のサイズ変更と最適化
  2. 02スキャンページを含むPDFからのテキスト抽出
  3. 03動画のトリミングとGIF作成
  4. 04ファイルの一括処理や写真の位置情報削除

MCP 対応

MCPクライアントにローカルのファイル・メディアツール、スキル、プロンプトを提供します。クライアントからstdioで起動するか、ローカルHTTPエンドポイントに接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"seayniclabs-lathe": {
"command": "uvx",
"args": [
"lathe-mcp"
]
}
}
}
起動コマンドuvx lathe-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilathe-mcp0.4.1

ツール

21

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
input_pathstringはい

詳細

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)内のファイルのみを読み書きします。任意の設定ファイル(/.config/lathe/config.toml)を読み込みます。ローカルの承認ログ(/.local/state/lathe/approvals.jsonl)を 1 つ書き込みます。
シークレットキー、アカウント、パスワードはありません。保存するものも、マシンから外に出るものもありません。
読み取り専用ツール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
batchglob に一致するすべてのファイルに対して 1 つの操作を実行(最初にドライラン)いいえ操作ごとに異なります(上記参照)
privacyGPS、カメラ、作成者のメタデータを確認・削除いいえPDF の場合は pdf extra

Lathe は無料で、MIT ライセンスです。デフォルトでは 21 個、batch と privacy を有効にすると 23 個のツールを利用できます。

スキル

スキルは、タスクを適切に行う方法を説明します。AI アシスタントはこれらを Agent Skills として、または MCP アプリでは MCP プロンプトとして読み込みます。

スキル用途
getting-startedセットアップ、不足している各コンポーネントのインストールコマンド、--doctor、承認ルール
pdfChrome または Chromium を使って Markdown ファイルを PDF に変換
pdf-forms入力可能なテキストボックスとチェックボックスを備えた PDF の作成
web-image-prep位置情報を削除し、ウェブサイト用に写真フォルダーを縮小

最初の 5 分

  1. インストールします:uvx --from "lathe-mcp[pdf,ocr]" lathe --version を実行するとバージョンが表示されます。Python 3.11 以降と uv が必要です。
  2. クライアントに Lathe を追加します(MCP クライアントに追加するを参照)。LATHE_WORKING_DIR にファイルがあるフォルダーを設定します。
  3. lathe --doctor(uvx --from "lathe-mcp[pdf,ocr]" lathe --doctor)を実行します。各コンポーネントについて ok または FIX と、修正するコマンドが表示されます。
  4. アシスタントに lathe_modules を呼び出すよう依頼します。有効なモジュールと不足しているモジュールを含む、すべてのモジュールが一覧表示されます。
お試しください

LATHE_WORKING_DIR を設定した後、これらをアシスタントに貼り付けてください。

  1. Call lathe_modules and tell me which pieces are missing.
  2. Show me the metadata in photos/trip.jpg, then make a copy without it as photos/trip-clean.jpg. (LATHE_PRIVACY_ENABLED=true が必要です)
  3. Dry-run image_optimize on everything in photos/ into web/, then run it. (LATHE_BATCH_ENABLED=true が必要です)
  4. Split report.pdf into parts of 5 pages in parts/.
  5. 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 ツールで、不足しているものとお使いのプラットフォーム用のコマンドを確認できます。

プログラム使用モジュールmacOSDebian / Ubuntu
ffmpeg(ffprobe を含む)media、batch(音声)brew install ffmpegsudo apt install ffmpeg
tesseractocr、およびスキャンページでの pdf_extract_textbrew install tesseractsudo apt install tesseract-ocr
ghostscriptpdf_to_images、batch(PDF)brew install ghostscriptsudo apt install ghostscript

設定

これらは、MCP クライアントの設定で環境変数として設定するか、設定ファイルに記述してください。Lathe はこれらが設定されていなくても起動します。

変数内容
LATHE_WORKING_DIRLathe が読み書きするフォルダーです。デフォルト:サーバーの起動時にいるフォルダー。
LATHE_MAX_FILE_MB入力ファイルの最大サイズ(MB)です。デフォルトは 500 です。
LATHE_OCR_LANGTesseract の言語コードです。複数指定できます(例:eng または eng+fra)。デフォルトは eng です。
LATHE_<MODULE>_ENABLEDtrue または false です。デフォルトは images、pdf、media、ocr では true、batch と privacy では false です。
LATHE_BATCH_PREAPPROVEDtrue にすると、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 で提供します。デフォルトでは、お使いのマシン上でのみ待ち受けます。ほかの場所に公開する前に、認証を設定してください。

ツール

ツールモジュール機能事前確認
healthcoreサーバーのバージョン、作業フォルダー、各外部プログラムがインストールされているかどうかいいえ
lathe_modulescore有効なモジュール、不足しているもの(インストールコマンド付き)、スキル、各ツールが必要とするものいいえ
image_infoimages幅、高さ、形式、モード、サイズ、EXIF タグいいえ
image_resizeimagesアスペクト比を保ちながら、幅、高さ、またはパーセンテージでサイズ変更いいえ
image_convertimagespng、jpeg、webp、avif、bmp に変換いいえ
image_optimizeimagesウェブ配信用に縮小。strip_metadata=false の場合を除き、メタデータを削除いいえ
image_cropimages矩形領域を切り抜きいいえ
image_thumbnailimages正方形の枠内に収めるいいえ
pdf_infopdfページ数、サイズ、暗号化、タイトル、作成者いいえ
pdf_extract_textpdf指定したページ、またはファイル全体のテキスト。テキストレイヤーのないページには OCR を使用。長いテキストは分割して返すいいえ
pdf_mergepdfPDF を順番に結合いいえ
pdf_to_imagespdf指定した DPI でページを PNG または JPEG にレンダリングいいえ
pdf_splitpdfN ページ単位に分割いいえ
pdf_compresspdfコンテンツストリームと重複オブジェクトを対象に、品質を損なわずファイルサイズを縮小したコピーを作成いいえ
audio_infomedia再生時間、形式、ビットレート、サンプルレート、チャンネル数いいえ
audio_convertmediamp3、wav、flac、aac、ogg に変換いいえ
video_infomedia再生時間、解像度、コーデック、フレームレート、音声トラックいいえ
video_thumbnailmedia秒単位で指定した時点のフレームを 1 枚保存いいえ
video_trimmedia一部分を切り出し(ストリームコピー。切り出し位置はキーフレームに合わせられます)いいえ
video_to_gifmedia最大 30 秒の動画からアニメーション GIF を作成いいえ
ocr_imageocr画像内のテキスト。長いテキストは分割して返すいいえ
batch_processbatch条件に一致するすべてのファイルに 1 つの操作を実行。デフォルトではドライラン2 ファイル以上の実行では必要
scrub_metadataprivacyメタデータを調べる(デフォルト)、または 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 が開発しました。 当社は、各バッチ実行を担当者が承認するローカル優先の仕組みで、企業独自のシステムに合わせたこのようなツールを開発しています。カスタム統合についてをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。