Free the Tools について
Free the Tools は、AI アシスタントやスクリプト向けのローカル MCP サーバー、CLI、JavaScript ライブラリです。PDF、画像メタデータ、テキスト、データなどを扱い、ファイルはコンピューター内で処理します。
主な機能
- 01PDFの結合、分割、回転、圧縮
- 02写真メタデータの削除
- 03CSV、JSON、テキストの変換
- 04ハッシュ生成と開発者向けツール
- 05アクセスを制限したローカル処理
活用シーン
- 01PDF文書の結合や圧縮
- 02写真から位置情報を削除
- 03CSVとJSONファイルの変換
- 04アシスタントやスクリプトからファイルツールを実行
MCP 対応
ローカル MCP サーバーとして stdio で動作し、MCP クライアントにファイル処理やユーティリティのツールを提供します。同じツールは CLI と JavaScript ライブラリからも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
29掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| file | string | いいえ | 1 つの .csv ファイルです。これか text のいずれかを指定します。このコンピューター上のファイルパスを指定します。絶対パス、または作業ディレクトリからの相対パスを指定できます。対応形式:text/csv、text/plain、text/tab-separated-values。 |
| text | string | いいえ | CSV テキストです。これか file のいずれかを指定します。 |
| typed | boolean | いいえ | 数値と true/false を JSON の数値とブール値に変換します(既定値は false:すべてテキストのままにします)。 |
| header | boolean | いいえ | 最初の行に列名が含まれます(既定値は true)。 |
| saveTo | string | いいえ | 任意指定。結果ファイルを freethetools ライブラリフォルダーに加えて保存するフォルダーです。作業ディレクトリ、ライブラリ、またはユーザーが --allow-save で許可したフォルダー内にあり、隠しフォルダー内ではない必要があります。.bat や .exe など、プログラムを実行できるファイルは保存されません。既存のファイルは上書きされません。 |
詳細
freethetools
AI アシスタント向けに、お使いのコンピューターでツールを自由に使えます。ファイルが外部に送信されることはありません。
このパッケージは、Model Context Protocol(MCP)サーバーと小さなコマンドラインを実行し、コードライブラリとしても機能します。PDF の圧縮、結合、分割、回転、ロック解除、写真からの位置情報の削除、CSV と JSON の変換、ハッシュの生成など、日常的なファイル操作に使えるツールを、AI アシスタントに提供します。これらは freethetools.com と同じツールです。
公式の MCP Registry に io.github.sapience-design/freethetools として登録されています。
このサーバーを利用できるアシスタントは、こうした作業のために Ghostscript、ImageMagick、Python パッケージをインストールする必要がありません。代わりにこれらのツールを使うよう、サーバーが指示します。
プライバシーの約束
- サーバーはお使いのコンピューターで実行されます。指定したファイルをディスクから読み取ります。
- サーバー自体はネットワークに接続しません。アップロードされるものはなく、利用状況が記録されることもありません。
- 結果はお使いのコンピューター上のフォルダーに保存されます(結果の保存先を参照)。
- 各ジョブの記録には、品質レベルやページ範囲などのオプションが残ります。ツールに渡したテキスト、パスワード、その他の秘密情報は記録されません。
- アシスタントが安全に操作できるファイルのみを読み書きします(安全性を参照)。
- アシスタントが読み取ったり作成したりするものは、すべてアシスタントとの会話を経由します。パスワードなどの秘密情報には、アシスタントではなくウェブサイトをお使いください。
セットアップ
Node.js 22 以降が必要です。ほかにインストールするものはありません。初回に npx がパッケージを取得します。
Claude Code
ターミナルで次のコマンドを一度実行します。
claude mcp add freethetools -- npx -y freethetools mcp
すべてのプロジェクトで使うには、名前の前に --scope user を追加します。claude mcp list で確認できます。
出典:Claude Code MCP documentation。
Claude Desktop
Claude Desktop はプロジェクトフォルダー内で実行されません。アシスタントには絶対パスを指定してください。たとえば C:\Users\you\Documents\report.pdf や /Users/you/Documents/report.pdf のように指定します。report.pdf のような短いパスでは見つかりません。
- Claude メニューを開き、Settings、Developer、Edit Config の順に選択します。
claude_desktop_config.json(Windows:%APPDATA%\Claude、macOS:~/Library/Application Support/Claude)に次の内容を追加します。
{
"mcpServers": {
"freethetools": {
"command": "npx",
"args": ["-y", "freethetools", "mcp"]
}
}
}
- Claude Desktop を再起動します。
出典:Connect to local MCP servers。Windows でアプリが npx を起動できない場合は、"command": "cmd" と "args": ["/c", "npx", "-y", "freethetools", "mcp"] を使用します。
Cursor
上記と同じ mcpServers ブロックを、~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1 つのプロジェクト)に追加します。出典:Cursor MCP documentation。
その他の MCP クライアント
次のコマンドでサーバーを起動し、標準入力と標準出力(stdio)を使って MCP で通信します。
npx -y freethetools mcp
MCP を使わずに利用する
MCP を使わないアシスタントやスクリプトからは、コマンドラインを利用できます。
npx -y freethetools list
npx -y freethetools run merge_pdfs '{"files":["a.pdf","b.pdf"]}'
npx -y freethetools run compress_pdf '{"file":"report.pdf","quality":"smallest","saveTo":"."}'
npx -y freethetools run convert_case '{"text":"hello world","case":"title"}'
run は結果を JSON として出力します。内容は ok、summary、data、保存した files と、それらの完全なパスです。ジョブが失敗すると、終了コード 1 で終了します。Windows では JSON をファイルに保存し、JSON の代わりに @args.json と記述します。すべての機能については freethetools --help を実行してください。
独自のコードから使う
npm install freethetools(Node.js 22 以降)でインストールし、JavaScript または TypeScript から任意のツールを呼び出します。各ツールは、その名前に対応した関数です。たとえば、compress_pdf は compressPdf です。
import { compressPdf, mergePdfs, convertCase } from "freethetools";
import { readFile, writeFile } from "node:fs/promises";
const { files } = await compressPdf({ file: "report.pdf", quality: "smallest" });
await writeFile(files[0].name, files[0].bytes);
const merged = await mergePdfs({ files: ["a.pdf", await readFile("b.pdf")] });
const { data } = await convertCase({ text: "hello world", case: "title" });
- ファイルの入力には、パス、バイト列(
Uint8ArrayまたはBuffer)、Blob、または{ name, bytes }を指定します。バイト列はコピーされ、変更されることはありません。パスはコマンドラインで読み込む場合と同じ方法で読み込まれます。隠しファイルと隠しフォルダーは拒否されます。 - 結果は
{ tool, summary, data, files }として返されます。各ファイルには、name、type、size、bytesが含まれます。ディスクにもライブラリフォルダーにも書き込まれないため、保存するものはご自身で選べます。 - エラーが発生すると、
case should be one of: upper, lower, …のような平易なメッセージを含むFreeTheToolsErrorがスローされます。 run(name, args)は名前を指定してツールを呼び出し、listTools()は各ツールとそのオプションを JSON Schema として一覧表示します。- 各呼び出しは制限時間付きで個別のスレッド内で実行されます。制限時間は通常 60 秒、Ghostscript などのエンジンを起動するツールでは 300 秒です。変更するには、2 番目の引数として
{ timeout: seconds }を渡します。 - 型定義が含まれており、各関数にはエディターで確認できるツールの説明が付いています。
すべての処理は、MCP サーバーと同様に、ネットワーク接続なしでお使いのコンピューター上で実行されます。
ツール
すべてのツールを一覧表示するには、freethetools list を実行します。ファイルには常に、お使いのコンピューター上の絶対パス、または作業ディレクトリからの相対パスを指定します。
| グループ | ツール |
|---|---|
compress_pdf, add_to_pdf, list_pdf_form_fields, fill_pdf_form, images_to_pdf, merge_pdfs, arrange_pdf_pages, protect_pdf, rotate_pdf, split_pdf, unlock_pdf | |
| 画像 | remove_photo_metadata |
| テキスト | convert_case, compare_texts, count_words |
| データ | csv_to_json, json_to_csv, format_json |
| 開発者向け | base64_encode, base64_decode, generate_hash, decode_jwt, generate_password, make_qr_code, test_regex, url_encode, url_decode, generate_uuids |
| 日常 | convert_colour, convert_time_zone, convert_units, convert_unix_timestamp |
ファイルを作成するツールはすべて、省略可能な saveTo も受け取ります。これは結果も保存するフォルダーです。既存のファイルが上書きされることはありません。代わりに、サーバーはファイル名に「 (2)」を追加します。saveTo にはルールがあります。詳しくは安全性を参照してください。
結果の保存場所
| 項目 | 場所 |
|---|---|
| ライブラリフォルダー | ホームフォルダー内の freethetools という名前のフォルダー |
| 別のフォルダー | freethetools mcp --library <folder> を実行するか、FREETHETOOLS_LIBRARY を設定 |
| 結果ファイル | <library>/files/<id>/<name> |
| すべてのジョブの記録 | <library>/library.jsonl。1 行につき 1 件の JSON レコード |
記録には、ツール、実行時刻、設定、入力ファイルの名前とサイズ、ツールが返した短い概要、結果ファイルが含まれます。失敗したジョブも、エラーとともに記録されます。
- 設定に含まれるのはオプションのみです。はい/いいえの切り替え、数値、リストから選ぶ項目、ファイル名やページ範囲などの短い値です。ツールに入力したテキスト、パスワード、シークレット(JWT シークレット、Wi-Fi パスワードなど)、
saveToは記録されません。 - 概要は、「3 バイトをエンコードしました。」のような 1 行のテキストです。Wi-Fi ネットワーク名など、入力した内容が概要に含まれる場合があります。
- 記録にファイルの内容が保存されることはありません。
Chrome と Edge では、freethetools.com のライブラリページからこのフォルダーを開き、アシスタントが行った操作を確認したり、結果を再取得したりできます。このページはブラウザー内でフォルダーを読み込みます。アップロードされるものはありません。
安全性
AI アシスタントがパスとファイル名を選択します。パッケージはそれらを信頼しません。
読み取り
- 隠しファイルや、隠しフォルダー内のファイルは読み取りません。名前がドットで始まるものは隠しファイルです。
~/.ssh、~/.aws、~/.gnupg、.env、.gitが該当します。 - まずリンクをたどるため、隠しファイルへのリンクも拒否されます。
- チェック対象となるのは、作業ディレクトリ、ライブラリ、またはホームフォルダーより下のパスの部分だけです。
.workなどのフォルダー内にあるプロジェクトは引き続き使用できます。 - ツールが会話に返すテキストまたはデータは最大 1 MB です。それを超えるデータはライブラリ内のファイルとして保存され、結果にそのパスが示されます。
saveTo を使った保存
saveTo に指定できるのは、次のいずれかのフォルダー内だけです。
- 作業ディレクトリ。ただし、作業ディレクトリがホームフォルダーまたはドライブのルートの場合は該当しません。
- ライブラリフォルダー。
--allow-save <folder>で許可したフォルダー。複数のフォルダーを許可するには、このオプションを繰り返し指定します。また、FREETHETOOLS_ALLOW_SAVEにフォルダーのリストを設定することもできます。区切り文字は Windows では;、それ以外では:です。
saveTo の保存先に、.git/hooks などの隠しフォルダーは指定できません。まずリンクをたどるため、許可されたフォルダーの外へリンクで移動することもできません。
Claude Code でフォルダーを許可するには:
claude mcp add freethetools -- npx -y freethetools mcp --allow-save ~/Documents/results
ファイル名
- 名前がドットで始まるファイルや、拡張子のないファイルは保存しません。
- プログラムを実行できる、または単独で起動できるファイルは保存しません:
.bat .cmd .com .exe .dll .msi .ps1 .psm1 .vbs .vbe .js .jse .wsf .wsh .hta .scr .pif .lnk .url .reg .sh .bash .zsh .command .desktop .app .jar .py .rb .pl .mjs .cjs .scpt .workflow .ps1xml .inf .cpl。 - この制限はライブラリにも適用されます。エラーにはファイル名が示され、別の名前を指定するよう求められます。
制限事項
- 各呼び出しは 60 秒後に停止します。
compress_pdfの場合は 5 分後に停止します。これにより、処理が終わらないジョブによってサーバーが応答しなくなるのを防ぎます。 - 1 回の呼び出しで読み取れる入力ファイルは最大 2 GB です。それを超えるファイルは拒否されます。
- パスワードで保護された PDF は、事前にロックを解除する必要があります。
- ウェブサイト上の一部のツールは、Node にないブラウザーの機能を使うため、まだパッケージに含まれていません。
- Image Compress、Convert and Resize、HEIC to JPG、Image to SVG、PDF to Images は、ブラウザーのキャンバスを使って画像を読み取るか保存します。Node で動作する画像エンジンが必要です。
- Video to GIF は、ブラウザーの動画プレーヤーからフレームを取得します。Node で動作する動画デコーダーが必要です。
- Markdown to HTML と File Converter には、ブラウザーのページモデル(DOM)またはキャンバスが必要です。
compress_pdf の仕組み
compress_pdf は、WebAssembly(@jspawn/ghostscript-wasm)にコンパイルされた Ghostscript を実行します。WebAssembly ファイルはこのパッケージに同梱されているため(約 16 MB)、ダウンロードも、お使いのコンピューターへの Ghostscript のインストールも不要です。
ライセンス
ウェブサイトと同じ AGPL-3.0-only です。ソースコードは github.com/sapience-design/freethetools にあります。サードパーティーのコードは NOTICE に記載されています。
Sapience Design の取り組みです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。