Rounder tools について
Rounder toolsは、PDF、文書、画像、アーカイブを処理するツールをAIアシスタントに提供するローカルMCPサーバーです。ffmpegが利用可能な場合は動画と音声も扱えます。ローカルファイルを扱うエージェント向けで、読み取り範囲は許可フォルダーに限定され、ネットワーク通信は行いません。
主な機能
- 01PDFの結合・分割・圧縮・保護
- 02画像の変換・サイズ変更・編集
- 03アーカイブの作成と展開
- 04文書テキストの抽出と表計算の確認
- 05ffmpegによる動画・音声ツール
- 06フォルダー単位の読み取り・出力制限
活用シーン
- 01ローカルPDFの結合や圧縮
- 02複数画像の変換とサイズ変更
- 03文書や表計算ファイルの確認
- 04ffmpeg導入環境でのメディア切り取りや変換
MCP 対応
stdioのMCPサーバーとしてファイル処理ツールを提供し、初期状態ではツールの検索・説明・実行を行う少数のヘルパーを公開します。ファイルはローカルに保たれ、読み取りは許可フォルダー内に限られます。出力先は入力ファイルの隣または指定フォルダーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 3 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| title | string | いいえ | 入力ファイルにタイトルがない場合のドキュメントタイトル |
| inputs | array | はい | 入力ファイルの絶対パスを順番に指定(2~500 個)。すべてを 1 つの結果にまとめます |
| output | string | いいえ | 出力先フォルダーの絶対パス(結果が 1 つの場合は新しいファイルのパスも可)。デフォルト:各入力ファイルの隣。既存のファイルは置き換えません。 |
| keepInfo | boolean | いいえ | 最初の PDF のタイトル、作成者、日付をコピーします |
| password | string | いいえ | 暗号化された入力ファイルのパスワード(すべてのファイルで同じものを使用) |
| bookmarks | boolean | いいえ | 入力ファイルごとにブックマークを 1 つ追加します |
詳細
@roundertools/mcp
AI アシスタントに roundertools.com のファイルツールを提供する MCP サーバーです。PDF の圧縮、結合、分割、保護、画像の変換とサイズ変更、ファイルの ZIP 圧縮、さらに(ffmpeg を使った)動画の圧縮、変換、トリミングができます。stdio 経由でコンピューター上で動作します。ファイルは元の場所に留まり、ネットワークリクエストは一切行いません。
インストール
Claude Code:
claude mcp add roundertools -- npx -y @roundertools/mcp
claude mcp add roundertools --scope user -- npx -y @roundertools/mcp --allow ~/Documents --allow ~/Downloads
Claude Code では、サーバー自体が不要な場合があります。roundertools プラグイン(/plugin marketplace add adam-sari/rounder、続けて /plugin install roundertools@roundertools)は、Claude に CLI の実行方法を教えるスキルです。使用するまでは約 100 トークンしか消費しません。
Claude Desktop(claude_desktop_config.json、設定 → 開発者 → 設定を編集):
{ "mcpServers": { "roundertools": { "command": "npx", "args": ["-y", "@roundertools/mcp", "--allow", "/Users/you/Documents"] } } }
Windows で npx が見つからない場合は、"command": "cmd", "args": ["/c", "npx", "-y", "@roundertools/mcp", …] を使用してください。
Cursor(~/.cursor/mcp.json または .cursor/mcp.json):
{ "mcpServers": { "roundertools": { "command": "npx", "args": ["-y", "@roundertools/mcp"] } } }
VS Code(.vscode/mcp.json):
{ "servers": { "roundertools": { "type": "stdio", "command": "npx", "args": ["-y", "@roundertools/mcp"] } } }
Node 22.13 以降が必要です。ffmpeg が PATH 上(または ROUNDERTOOLS_FFMPEG で指定した場所)にある場合、動画および音声ツールが利用可能になります。
アクセス対象
- 読み取り対象:
--allow DIR(複数回指定可)またはROUNDERTOOLS_ALLOW(パスのリスト)で指定したフォルダー内のファイルです。どちらも指定しない場合は、ホームフォルダーと、起動したフォルダー(システムフォルダーではなくプロジェクトの場合)です。クライアント側でルートをさらに狭めることはできますが、広げることはできません。 - 読み取り対象外:許可されたフォルダー内であっても、隠しフォルダーやファイル(
.ssh、.aws、.config、.envなど)、鍵やパスワードのファイル、ブラウザープロファイルなどのアプリデータは読み取りません。パスは絶対パスである必要があり、確認前にシンボリックリンクを解決します。例外はサーバー独自の設定フォルダーのみで、起動時に読み取られます。ツール呼び出しから読み取ることはできません。 - 書き込み先:入力ファイルの隣、または
--out DIRで指定したフォルダーのみです。既存のファイルを置き換えたり、入力ファイルに上書きしたりすることはありません。もう一つの書き込み先は、サーバー独自の設定フォルダーです。 - ネットワーク:使用しません。サーバーは最初にガードを読み込み、プロセスとワーカースレッド内の fetch、http、https、net、tls、dgram、および DNS ルックアップをブロックします。Node 26 以降では、ネットワークアクセスを無効にした Node の権限モデルの下で、自身を再実行します。Node 22 および 24 では、このガードはサンドボックスではありません。ネットワークコードを含まないパッケージに依存しています。ffmpeg は別のプログラムとして実行され、入力はローカルファイルに制限されます(
-protocol_whitelist file,pipe)。 - ディスクにアクセスする前の確認:許可されたフォルダー外のパスは、検索される前に拒否されるため、ツール呼び出しでファイルの有無を調べることはできません。また(Windows では)コンピューターに
\\server\shareへの接続を試みさせることもありません。
ファイルから読み取ったテキストや詳細情報(ドキュメントから Markdown への変換結果、PDF のテキスト、フォームのフィールド、PDF のタイトル、EXIF フィールド)は、ファイルの内容として囲まれて返されます。ファイルが推測できないランダムな名前のタグで囲まれ、指示として扱われることはありません。
読み込まれる内容
クライアントは、サーバーが一覧表示するすべてのツールを、使うかどうかにかかわらず、各会話の開始時にモデルへ送信します。最初からすべてのツールを一覧表示すると(ffmpeg を含めて 38 個)、約 18,000 トークンが必要です。そのため、デフォルトでは 3 つのヘルパー(約 700 トークン)に加え、短い説明文(約 150 トークン)のみを一覧表示します。
find-tool:サイト上のすべてのツールを、実行したい内容に基づいて検索しますdescribe-tool:任意のツールのオプションを JSON Schema 形式で表示しますrun-tool:ブラウザー外で動作する任意のツールを、同じチェックを行って実行します
これらの背後には、merge-pdf、split-pdf、compress-pdf、protect-pdf、unlock-pdf、organize-pdf、add-page-numbers-to-pdf、watermark-pdf、jpg-to-pdf、pdf-to-text、extract-images-from-pdf、pdf-form-fields、fill-pdf-form があり、@napi-rs/canvas を使う pdf-to-jpg と redact-pdf、さらに image-converter、image-compressor、image-resizer、crop-image、rotate-image、exif-remover、image-prep、image-diff、zip-files、unzip-files、checksum-calculator、file-info、document-to-markdown、spreadsheet-inspector、そして ffmpeg を使う video-compressor、video-converter、trim-video、mute-video、video-to-gif、video-to-mp3、audio-converter、video-contact-sheet のほか、ブラウザー外で動作するサイト上のその他のツールがあります。
使用するにつれて一覧が増えていきます。
- ツールごと。 アシスタントが
describe-toolでツールの説明を取得するか、run-toolでツールの実行に成功すると、サーバーはそのツールを直接一覧に追加し、クライアントに通知します(notifications/tools/list_changed)。これにより、次回から名前を指定して呼び出せます。find-toolは検索のみを行い、実行に失敗しても何も追加されません。一覧の変更を無視するクライアントでも、run-toolを通じてすべてのツールを利用できます。find-toolとプロンプトでは、最初から一覧にないツールに対してrun-toolを指定します。一覧が変更されるたびに、クライアントが一覧を再読み込みする(キャッシュされたプロンプトが失われる)可能性があるため、ツールごとに一度だけ変更されます。 - お気に入り。 過去 90 日間に少なくとも 2 回使用したツール(最大 5 個)は、このコンピューターで動作する場合、最初から一覧に表示されます。メモリをご覧ください。
--tools all を指定すると、最初からすべてのツールが一覧表示されます。アシスタントに検索させる代わりに、一度だけトークンを消費したい場合に使います。--tools default は、デフォルトで一覧表示される 0.1 のツールセット(checksum-calculator 以外のすべて)を一覧表示します。ファミリー(--tools pdf,image)やツール名(--tools compress-pdf,merge-pdf)を指定すると、それらだけが一覧表示されます。これらは組み合わせられます。例:--tools lean,pdf または --tools default,checksum-calculator。ヘルパーは常に利用できます。このフラグは設定ファイルより優先され、設定ファイルは lean のデフォルトより優先されます。
各ツールは inputs(絶対パス)、任意の output(フォルダー、または単一の結果に対する新しいファイル)、および独自のオプションを受け取ります。結果として、概要、ファイルへの resource_link、および各出力のパス、サイズ、種類を含む structuredContent が返されます。画像ツールでは preview: true を指定すると、結果の小さな PNG が生成されます。
ターミナルのコーディングエージェント(Claude Code、Codex、Gemini CLI、opencode)では、最初の find-tool の結果に、MCP を使わずに同じ処理を行う npx -y roundertools <tool> … が一度だけ記載されます。ほかに、接続しているクライアントによって変わるものはありません。
プロンプト
プロンプトは選択するまでトークンを消費しません。それぞれ、アシスタントに呼び出すツールとその引数を指示します。
| プロンプト | 引数 |
|---|---|
compress-pdf | file、任意の size(例:1mb) |
merge-pdfs | files |
convert-images | files、format |
pdf-to-text | file |
read-document | file(PDF、Word、PowerPoint、Excel、または CSV) |
fill-pdf-form | file(フィールドを一覧表示して質問し、その後入力します) |
redact-pdf | file、what(@napi-rs/canvas を使用する場合のみ) |
shrink-video | file、任意の size(ffmpeg を使用する場合のみ) |
メモリー
お気に入りは、使用したツールの回数に基づいています。ツールの実行が成功すると、サーバーは回数を 1 増やし、日付を usage.json に記録します。
{ "version": 1, "tools": { "compress-pdf": { "count": 4, "last": "2026-11-02" } } }
保存するのはこれだけです。ツール名、回数、日付です。パス、ファイル名、オプション、ファイルから読み取った内容などは一切保存しません。他のすべてのデータと同様に、お使いのコンピューター上に保持されます。
--no-memory、ROUNDERTOOLS_MEMORY=off、または npx roundertools config set memory off で無効にできます。すべての記録を消去するには、npx roundertools config reset を実行します。
設定
settings.json と usage.json は同じフォルダーに保存されます。
| システム | フォルダー |
|---|---|
| Windows | %APPDATA%\roundertools |
| macOS | ~/Library/Application Support/roundertools |
| Linux など | $XDG_CONFIG_HOME/roundertools、または ~/.config/roundertools |
別のフォルダーを指定するには、ROUNDERTOOLS_CONFIG_DIR を設定します。CLI で表示や変更ができます。
npx roundertools config # the folder, the settings and your favourites
npx roundertools config set tools all # lean, all, default, families or tool names
npx roundertools config set memory off # on or off
npx roundertools config reset # remove both files
変更は次回のサーバー起動時に適用され、コマンドラインのフラグが優先されます。Node 26 以降では、権限モデルによりサーバーはこのフォルダーへの読み書きが許可されるため、メモリーも引き続き機能します。メモリーが無効の場合、読み取りのみが可能です。
オプション
| オプション | |
|---|---|
--allow DIR | 読み取り可能なフォルダー(複数指定可) |
--out DIR | 入力ファイルと同じ場所に加えて、書き込み先として許可するフォルダー |
--tools LIST | lean(デフォルト)、all、default、ファミリー(pdf,image,files,media)、またはツール名 |
--no-memory | 使用したツールの回数を記録しません |
--experimental | 未完成の機能を有効にします(現在はありません) |
--max-input SIZE | ファイルごとの上限(デフォルトは 1gb、メディアは 2gb) |
--timeout MIN | 呼び出しごとの時間(分、デフォルトは 5、メディアは 30) |
--max-outputs N | 1 回の呼び出しで書き込めるファイル数(デフォルトは 500) |
公式 MCP TypeScript SDK(@modelcontextprotocol/server)を基盤とし、stdio のみを使用します。ログは stderr に出力し、負荷の高いジョブを一度に 1 つ実行し、進捗通知を送信します。また、呼び出しがキャンセルされると停止します。
ライセンス
MIT。ドキュメント:roundertools.com/developers/mcp。ソース:github.com/adam-sari/rounder の packages/mcp にあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。