Use these tools from your AI assistant
Claude, ChatGPT, Cursor and other assistants can run these tools on your own computer, free and with no login, so your files are never uploaded.
Copy a prompt for your assistant
Paste this into your assistant. It sets itself up and uses the tools for your file jobs.
I'd like you to use Free the Tools for file jobs on my computer, such as compressing, merging or splitting PDFs, converting images, or formatting data. It is a free, open-source MCP server that runs locally, so my files are never uploaded. 1. Add it as an MCP server that runs `npx -y freethetools mcp` (it needs Node.js 22 or later). In Claude Code, run: claude mcp add freethetools -- npx -y freethetools mcp 2. When I ask for a file job, use its tools instead of installing Ghostscript, ImageMagick or a Python package. 3. Pass files as absolute paths. Results are saved in a folder named freethetools in my home folder. Tell me where each result is. 4. Never send my files to an online service. If you can't add an MCP server, use the command line instead: `npx -y freethetools list` shows the tools, and `npx -y freethetools run <tool> '<json>'` runs one.
Set it up
You need Node.js 22 or later. Pick your assistant.
Claude Code plugin
In Claude Code, run these two commands:
/plugin marketplace add sapience-design/freethetools /plugin install freethetools@freethetools
Cursor and VS Code
Each button opens the app on your computer. Nothing is uploaded.
Gemini CLI
Open a terminal and run:
gemini extensions install https://github.com/sapience-design/freethetools
OpenAI Codex
Add this block to ~/.codex/config.toml, then restart Codex:
[mcp_servers.freethetools] command = "npx" args = ["-y", "freethetools", "mcp"]
ChatGPT, Gemini and Claude on the web
ChatGPT, Gemini and Claude on the web cannot run tools on your computer. Use the tools on this website instead.
Set it up by hand
Claude Code
Open a terminal and run:
claude mcp add freethetools -- npx -y freethetools mcp
To use it in every project, run claude mcp add --scope user freethetools -- npx -y freethetools mcp instead.
Claude Desktop
Claude Desktop does not run in your project folder. Always give it the full path to a file.
- Open the Claude menu, then Settings, then Developer.
- Select Edit Config. This opens
claude_desktop_config.json. - Add the block below. If the file already has
mcpServers, add only thefreethetoolsentry. - Save the file and restart Claude Desktop.
{
"mcpServers": {
"freethetools": {
"command": "npx",
"args": ["-y", "freethetools", "mcp"]
}
}
}On Windows, if the app cannot start npx, use "command": "cmd" and "args": ["/c", "npx", "-y", "freethetools", "mcp"].
Cursor
Add the same block to ~/.cursor/mcp.json for all projects, or to .cursor/mcp.json in one project. Create the file if it does not exist. Then restart Cursor.
Another MCP client
Find where the client lists local (stdio) servers. Set the command to npx and the arguments to -y freethetools mcp. Then restart the client.
Without MCP
Let the assistant run commands in a terminal. It can list the tools, then run one:
npx -y freethetools list
npx -y freethetools run merge_pdfs '{"files":["a.pdf","b.pdf"]}'Results are saved in a folder named freethetools in your home folder.
What your assistant can do
| Tool page | Agent tool name | What it does |
|---|---|---|
| CSV to JSON | csv_to_json | Turn CSV into JSON: an array of objects keyed by the header row, or an array of arrays. |
| CSV to JSON | json_to_csv | Turn a JSON array (of objects, or of arrays) into CSV. |
| JSON Formatter | format_json | Check JSON and pretty-print it, minify it, or sort its keys. |
| Base64 | base64_decode | Decode Base64 (standard or URL-safe, padding optional) to text, or to a file when the result is binary. |
| Base64 | base64_encode | Encode text (as UTF-8) or a file as Base64, in standard or URL-safe form. |
| Hash Generator | generate_hash | Hash text (as UTF-8) or a file with SHA-256, SHA-512, SHA-384, SHA-1 or MD5, as lowercase hex. |
| JWT Decoder | decode_jwt | Decode a JSON Web Token: header, payload, the standard claims in plain words (including whether it has expired), and, given the shared secret, whether an HS256/384/512 signature is valid. |
| Password Generator | generate_password | Make random passwords or passphrases from a secure random source, with an honest strength estimate in bits. |
| QR Code Maker | make_qr_code | Make a QR code as an SVG file, for a link, any text, or a Wi-Fi network (phones join it by scanning). |
| Regex Tester | test_regex | Run a JavaScript regular expression over text and list every match with its position, numbered groups and named groups. |
| URL Encode and Decode | url_decode | Decode percent-encoded text (decodeURIComponent or decodeURI). |
| URL Encode and Decode | url_encode | Percent-encode text for use in a web address (encodeURIComponent or encodeURI). |
| UUID Generator | generate_uuids | Make UUIDs (RFC 9562) from a secure random source: random v4, or time-ordered v7, which sorts by creation time and suits database keys. |
| Colour Converter | convert_colour | Read a colour written as HEX (#f80, #ff8800, #ff880080), rgb()/rgba(), hsl()/hsla() or a CSS colour name, and return it as HEX, RGB and HSL with the nearest CSS colour name and the WCAG contrast ratio against white and black (pass or fail for normal and large text). |
| Time Zone Converter | convert_time_zone | Convert a local date and time in one time zone to other time zones, with daylight saving applied exactly from the time zone database, and flag times outside working hours (08-18). |
| Unit Converter | convert_units | Convert a value between units in one category, using exact definitions where they exist. |
| Unix Timestamp Converter | convert_unix_timestamp | Convert a Unix timestamp to a date, or a date to a Unix timestamp. |
| Remove Photo Location | remove_photo_metadata | Strip location (GPS), camera details, time, XMP and IPTC metadata from JPEG, PNG and WebP photos before sharing them. |
| Compress PDF | compress_pdf | Make a PDF smaller with Ghostscript, at a chosen quality: smallest (screen reading), balanced (email and sharing, default), print, or prepress (keeps colour profiles). |
| Fill PDF Form | fill_pdf_form | Fill a PDF form's fields by name and save a new PDF. |
| Fill PDF Form | list_pdf_form_fields | List the fillable fields in a PDF form: name, type (text, checkbox, dropdown, radio, list), current value, choices and whether it is read-only. |
| Images to PDF | images_to_pdf | Put JPEG and PNG images into one PDF, one page per image, in the order given. |
| Merge PDFs | merge_pdfs | Combine PDFs into one, keeping every page, in the order given. |
| Rotate Pages | rotate_pdf | Turn pages of a PDF clockwise by 90, 180 or 270 degrees: every page, or chosen pages such as "1-3, 5". |
| Split PDF | split_pdf | Split a PDF into separate files: one per page, or one per range such as "1-3, 5, 8-" (8- means page 8 to the end). |
| Unlock PDF | unlock_pdf | Remove the lock from a PDF with qpdf, without changing the pages, forms or bookmarks. |
| Case Converter | convert_case | Change the case of text: upper, lower, sentence, title, camel (camelCase), pascal (PascalCase), snake (snake_case), kebab (kebab-case) or constant (CONSTANT_CASE). |
| Text Diff | compare_texts | Compare two texts and show what changed, line by line or word by word, with counts of added and removed lines or words. |
| Word Counter | count_words | Count words, characters (as people see them, emoji included), sentences and paragraphs, with reading and speaking time. |
Most image tools run on the website for now.
In the browser
In a browser that supports WebMCP, each tool page offers its tool to your assistant. Chrome and Edge support it in origin trials. The files stay in the browser.
Every job an assistant does is recorded in your Library, on your device. You can see what it did and get the results again.
Safety
- It never reads hidden files or files in hidden folders, such as ~/.ssh, .env and .git.
- It never overwrites a file that exists.
- It never saves into a hidden folder, and never saves a file that can run a program, such as .bat, .exe or .sh.
- It returns at most 1 MB of text or data in the conversation. Larger results are saved in the library folder.
There is no hosted server for assistants, because your files would have to be uploaded. The tools run on your computer instead.
For machines
- /ai.md: this page as Markdown
- /llms.txt: a short summary of the site
- /llms-full.txt: every tool in full
- /api/tools.json: the catalogue as JSON
- The package on npm
- MCP Registry:
io.github.sapience-design/freethetools - Source code on GitHub