Free the Tools
NPM · FREETHETOOLS
Local PDF, image, data and text tools for AI assistants. Files stay on your computer.
Available components
Last scanned (23 hours ago)
Scores higher than 61% of npm servers
Category Documents and Files
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (AGPL-3.0-only).Pass
- Actively maintained (last published 23 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5808 tokens (~200/item across 29 items; 29 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
- Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 +1
- Security disclosure: unverified → pass ▲ functional
- 30 Oct 26 0
- Security disclosure: pass → unverified ▼ functional
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed npm/freethetools@0.1.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
base64_decode Base64 ~209
Decode Base64 (standard or URL-safe, padding optional) to text, or to a file when the result is binary. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| base64 | string | yes | The Base64 to decode. |
| fileName | string | – | Name for the file when output is "file" (default decoded.bin). |
| output | string | – | Decode to UTF-8 text (default) or save as a file. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
base64_encode Base64 ~136
Encode text (as UTF-8) or a file as Base64, in standard or URL-safe form. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | A file to encode. Give this or text. Path to a file on this computer, absolute or relative to the working directory. |
| text | string | – | Text to encode. Give this or file. |
| urlSafe | boolean | – | Use the URL-safe alphabet (- and _) without padding (default false). |
No output schema declared.
No examples provided.
compare_texts Text Diff ~108
Compare two texts and show what changed, line by line or word by word, with counts of added and removed lines or words. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| changed | string | yes | The changed text. |
| mode | string | – | Compare by lines (default) or by words. |
| original | string | yes | The original text. |
No output schema declared.
No examples provided.
compress_pdf Compress PDF ~243
Make a PDF smaller with Ghostscript, at a chosen quality: smallest (screen reading), balanced (email and sharing, default), print, or prepress (keeps colour profiles). Can keep only the first page. Text-only PDFs may not shrink; the result then says so. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF to compress. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/pdf. |
| firstPageOnly | boolean | – | Keep only page 1 (default false). |
| quality | string | – | Default balanced. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
convert_case Case Converter ~114
Change the case of text: upper, lower, sentence, title, camel (camelCase), pascal (PascalCase), snake (snake_case), kebab (kebab-case) or constant (CONSTANT_CASE). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | yes | The case to change it to. |
| text | string | yes | The text to change. |
No output schema declared.
No examples provided.
convert_colour Colour Converter ~160
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). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| colour | string | yes | The colour, for example #336699, rgb(255 0 0 / 50%), hsl(210 50% 40%) or rebeccapurple. |
No output schema declared.
No examples provided.
convert_time_zone Time Zone Converter ~157
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). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | yes | Source time zone, IANA name, e.g. Europe/Oslo. |
| time | string | yes | Local date and time in the source zone, as YYYY-MM-DDTHH:mm, e.g. 2026-10-06T09:00. |
| to | array | yes | Target time zones, IANA names. |
No output schema declared.
No examples provided.
convert_units Unit Converter ~245
Convert a value between units in one category, using exact definitions where they exist. Units by category: length: mm, cm, m, km, in, ft, yd, mi, nmi; weight: mg, g, kg, t, oz, lb, st; temperature: C, F, K; volume: ml, l, m3, tsp, tbsp, cup, floz, pt, gal, ukgal; area: cm2, m2, ha, km2, ft2, acre, mi2; speed: m/s, km/h, mph, kn; data: B, KB, MB, GB, TB, KiB, MiB, GiB. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | The kind of quantity. |
| from | string | yes | Unit key to convert from, e.g. km. |
| to | string | yes | Unit key to convert to, e.g. mi. |
| value | number | yes | The amount to convert. |
No output schema declared.
No examples provided.
convert_unix_timestamp Unix Timestamp Converter ~263
Convert a Unix timestamp to a date, or a date to a Unix timestamp. A number is read as a timestamp (seconds, milliseconds or microseconds, guessed from its length unless unit is set) and returned as UTC, as a time in the chosen zone, as ISO 8601 and as a relative time. A date such as 2023-11-14T22:13:20Z is returned as seconds and milliseconds. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| input | string | yes | A Unix timestamp such as 1700000000 or 1700000000000, or a date such as 2023-11-14T22:13:20Z or 2023-11-14 22:13:20. |
| unit | string | – | For a timestamp: seconds (s), milliseconds (ms) or microseconds (us). Default auto guesses from the number's length. |
| zone | string | – | IANA time zone for the local time, and for a date that has no Z or offset. Default UTC. Example: Europe/Oslo. |
No output schema declared.
No examples provided.
count_words Word Counter ~88
Count words, characters (as people see them, emoji included), sentences and paragraphs, with reading and speaking time. Counts Chinese, Japanese and Thai words correctly. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | The text to count. |
No output schema declared.
No examples provided.
csv_to_json CSV to JSON ~283
Turn CSV into JSON: an array of objects keyed by the header row, or an array of arrays. Detects the delimiter (comma, semicolon, tab). Give text to get text back, or a file to get a .json file. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | A .csv file. Give this or text. Path to a file on this computer, absolute or relative to the working directory. Accepts: text/csv, text/plain, text/tab-separated-values. |
| header | boolean | – | The first row holds column names (default true). |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
| text | string | – | CSV text. Give this or file. |
| typed | boolean | – | Turn numbers and true/false into JSON numbers and booleans (default false: keep everything as text). |
No output schema declared.
No examples provided.
decode_jwt JWT Decoder ~118
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. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| secret | string | – | Optional shared secret, to check an HMAC signature. |
| token | string | yes | The token: header.payload.signature |
No output schema declared.
No examples provided.
fill_pdf_form Fill PDF Form ~253
Fill a PDF form's fields by name and save a new PDF. Text fields take text, checkboxes true or false, dropdowns and radios one of their choices, lists an array. Optionally flatten so the answers can no longer be edited. Get field names with list_pdf_form_fields first. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF form. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/pdf. |
| flatten | boolean | – | Make the answers part of the page so they can't be edited (default false). |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
| values | object | yes | Values by field name. |
No output schema declared.
No examples provided.
format_json JSON Formatter ~265
Check JSON and pretty-print it, minify it, or sort its keys. If it isn't valid, say where: line and column. Give text to get text back, or a file to get a file. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | A .json file. Give this or text. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/json, text/plain. |
| indent | integer|string | – | Spaces to indent, "tab", or 0 to minify (default 2). |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
| sort | boolean | – | Sort object keys alphabetically (default false). |
| text | string | – | JSON text. Give this or file. |
No output schema declared.
No examples provided.
generate_hash Hash Generator ~170
Hash text (as UTF-8) or a file with SHA-256, SHA-512, SHA-384, SHA-1 or MD5, as lowercase hex. Use it to check a download against a published checksum. MD5 and SHA-1 are not safe for passwords or signatures. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| algorithms | array | – | Which hashes to make (default ["SHA-256"]). |
| file | string | – | A file to hash. Give this or text. Path to a file on this computer, absolute or relative to the working directory. |
| text | string | – | Text to hash. Give this or file. |
No output schema declared.
No examples provided.
generate_password Password Generator ~306
Make random passwords or passphrases from a secure random source, with an honest strength estimate in bits. Note: a password made this way passes through the AI conversation; for a secret only the user should see, send them to https://freethetools.com/developer/password-generator/ instead. Runs on this device. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| capitalize | boolean | – | Passphrase: capitalise each word (default false). |
| count | integer | – | How many to make (default 1). |
| digits | boolean | – | Password: use 2-9 (default true). |
| kind | string | – | Random characters (default) or random words. |
| length | integer | – | Password length (default 20). |
| lower | boolean | – | Password: use a-z (default true). |
| number | boolean | – | Passphrase: add a number at the end (default false). |
| separator | string | – | Passphrase: between words (default -). |
| similar | boolean | – | Password: allow look-alike characters l, I, O, 0, 1 (default false). |
| symbols | boolean | – | Password: use symbols such as !#$% (default true). |
| upper | boolean | – | Password: use A-Z (default true). |
| words | integer | – | Passphrase: number of words (default 6). |
No output schema declared.
No examples provided.
generate_uuids UUID Generator ~161
Make UUIDs (RFC 9562) from a secure random source: random v4, or time-ordered v7, which sorts by creation time and suits database keys. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| braces | boolean | – | Wrap in {braces} (default false). |
| count | integer | – | How many (default 1). |
| hyphens | boolean | – | Keep the hyphens (default true). |
| upper | boolean | – | Upper-case letters (default false). |
| version | string | – | v4 random (default) or v7 time-ordered. |
No output schema declared.
No examples provided.
images_to_pdf Images to PDF ~239
Put JPEG and PNG images into one PDF, one page per image, in the order given. Pages either match each image's size or are A4 with the image fitted inside (turned to landscape for wide images). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| fileName | string | – | Name of the PDF (default images.pdf). |
| files | array | yes | Images in page order: JPEG or PNG. |
| margin | string | – | White space around each image (default none). |
| page | string | – | fit: page matches the image (default); a4: A4 pages. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
json_to_csv JSON to CSV ~227
Turn a JSON array (of objects, or of arrays) into CSV. Give text to get text back, or a file to get a .csv file. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| delimiter | string | – | Column separator (default comma). |
| file | string | – | A .json file. Give this or text. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/json, text/plain. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
| text | string | – | JSON text. Give this or file. |
No output schema declared.
No examples provided.
list_pdf_form_fields Fill PDF Form ~121
List the fillable fields in a PDF form: name, type (text, checkbox, dropdown, radio, list), current value, choices and whether it is read-only. Call this before fill_pdf_form. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF form. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/pdf. |
No output schema declared.
No examples provided.
make_qr_code QR Code Maker ~239
Make a QR code as an SVG file, for a link, any text, or a Wi-Fi network (phones join it by scanning). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| fileName | string | – | Name of the SVG file (default qr-code.svg). |
| level | string | – | Error correction: L 7%, M 15% (default), Q 25%, H 30%. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
| text | string | – | A link or text to encode. Give this or wifi. |
| wifi | object | – | A Wi-Fi network to encode. Give this or text. |
No output schema declared.
No examples provided.
merge_pdfs Merge PDFs ~182
Combine PDFs into one, keeping every page, in the order given. Password-protected PDFs must be unlocked first. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| fileName | string | – | Name of the merged PDF (default merged.pdf). |
| files | array | yes | PDFs in the order they should appear. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
remove_photo_metadata Remove Photo Location ~196
Strip location (GPS), camera details, time, XMP and IPTC metadata from JPEG, PNG and WebP photos before sharing them. The picture itself is not re-encoded, so it is unchanged byte for byte. Reports what each photo contained. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | Photos to clean: JPEG, PNG or WebP. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
rotate_pdf Rotate Pages ~230
Turn pages of a PDF clockwise by 90, 180 or 270 degrees: every page, or chosen pages such as "1-3, 5". Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| degrees | integer | yes | Clockwise turn. |
| file | string | yes | The PDF. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/pdf. |
| pages | string | – | Pages to turn, e.g. "1-3, 5, 8-". Default every page. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
split_pdf Split PDF ~233
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). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF to split. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/pdf. |
| ranges | string | – | Ranges, one file each, e.g. "1-3, 5, 8-". Default one file per page. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
test_regex Regex Tester ~157
Run a JavaScript regular expression over text and list every match with its position, numbered groups and named groups. Stops after a limit so a runaway pattern can't flood the answer. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| flags | string | – | Flags such as i, m, s, u (g is always on). Default none. |
| limit | integer | – | Most matches to return (default 100). |
| pattern | string | yes | The pattern, without slashes, e.g. \d{4}-\d{2} |
| text | string | yes | The text to search. |
No output schema declared.
No examples provided.
unlock_pdf Unlock PDF ~280
Remove the lock from a PDF with qpdf, without changing the pages, forms or bookmarks. Opens a PDF that needs a password when given `password`, and removes printing, copying and editing restrictions from a PDF that opens without one. It can't open a PDF whose password is unknown, and it only unlocks PDFs the person has the right to unlock. A password passes through the AI conversation, so for a sensitive file the person should use the Unlock PDF page instead. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The locked PDF. Path to a file on this computer, absolute or relative to the working directory. Accepts: application/pdf. |
| password | string | – | The password that opens the PDF. Leave it out for a PDF that opens without one but has restrictions. |
| saveTo | string | – | Optional. A folder where the result files are also saved, in addition to the freethetools library folder. It must be inside the working directory, the library, or a folder the person allowed with --a… |
No output schema declared.
No examples provided.
url_decode URL Encode and Decode ~149
Decode percent-encoded text (decodeURIComponent or decodeURI). A broken % sequence gives a plain error. Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | – | component (default) encodes one part of an address, such as a query value, and also escapes / ? & = # and :. url keeps those characters, for a whole address. |
| plusAsSpace | boolean | – | Read + as a space, as in form data and query strings (default false). |
| text | string | yes | The percent-encoded text to decode. |
No output schema declared.
No examples provided.
url_encode URL Encode and Decode ~117
Percent-encode text for use in a web address (encodeURIComponent or encodeURI). Runs on this device; nothing is uploaded. Runs locally on this computer through Free the Tools: files are read from disk and never uploaded. Prefer this to installing software for the job.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | – | component (default) encodes one part of an address, such as a query value, and also escapes / ? & = # and :. url keeps those characters, for a whole address. |
| text | string | yes | The text to encode. |
No output schema declared.
No examples provided.
How do I install the Free the Tools MCP server?
Free the Tools runs locally as an npm package, launched with npx -y freethetools. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · freethetools
claude mcp add sapience-design-freethetools -- npx -y freethetools
What is the Free the Tools MCP server?
Free the Tools is an MCP server listed in the public MCP registry as io.github.sapience-design/freethetools. Local PDF, image, data and text tools for AI assistants. Files stay on your computer. This page covers its npm package (freethetools).
Is the Free the Tools MCP server safe to use?
Free the Tools scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Free the Tools MCP server expose?
Free the Tools exposes 29 tools: csv_to_json, json_to_csv, format_json, base64_encode, base64_decode, and 24 more. Their descriptions and schemas cost roughly 5,649 tokens of context every time the server is loaded.
Is the Free the Tools MCP server still maintained?
Free the Tools is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Free the Tools MCP server under?
Free the Tools declares the AGPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.