FileGizmo MCP server

FileGizmo ships a stdio Model Context Protocol (MCP) server that hands 55 of its utilities to any MCP client, including Claude Code, the Claude desktop app, and Cursor. 49 only read; the other 6 write PDFs to paths you name. It imports the same modules the website and the golden tests run, so a result here is the result you would get in the browser.

It runs as a local subprocess on your machine. There is no HTTP server, no account, and no upload, which is the same reason the website has none.

Add it to a client

Clone the repository, then point your client at mcp/server.mjs. Node.js 24 or newer is required.

{
  "mcpServers": {
    "filegizmo": {
      "command": "node",
      "args": ["/absolute/path/to/filegizmo/mcp/server.mjs"]
    }
  }
}

Restart the client afterwards. It should list decode_jwt, merge_record_sets, and parse_page_ranges among its tools. From a checkout you can also run npm run mcp to start the server directly and confirm it responds.

55 tools

49 of these only read what you pass them. Inputs and outputs stay between your client and this local subprocess.

  • text_statsCount words, lines, graphemes, UTF-16 units, and reading time.
  • convert_caseConvert text to upper, lower, sentence, title, camel, or snake case.
  • remove_duplicate_linesRemove repeated lines while optionally trimming and ignoring case.
  • slugifyCreate a lowercase URL or filename slug.
  • generate_loremGenerate bounded Lorem ipsum paragraphs.
  • diff_linesCompare two strings line by line.
  • smart_csv_valueCoerce one CSV value without corrupting phone numbers, leading zeros, or long identifiers.
  • smart_csv_recordsApply conservative CSV typing to an array of records.
  • flatten_recordFlatten a nested record into dot-separated keys.
  • normalize_json_recordsNormalize JSON values into compact or flattened tabular records.
  • merge_record_setsMerge two or more parsed CSV record sets by strict or union headers.
  • format_jsonFormat JSON with optional key sorting.
  • decode_jwtDecode a JWT header and payload without verifying its signature.
  • developer_error_messageMap a developer-tool exception message to safe user-facing copy.
  • json_fidelity_noticesDetect unsafe large integers and duplicate keys before formatting JSON.
  • parse_page_rangesParse ranges such as 1-3,7 into zero-based page indexes.
  • format_bytesFormat a byte count in a human-readable binary unit.
  • encode_base64Encode text as base64, optionally in the URL-safe alphabet.
  • decode_base64Decode standard or URL-safe base64 back to text.
  • encode_url_textPercent-encode text as a URL component or as a full URL.
  • decode_url_textDecode percent-encoded text from a URL component or a full URL.
  • generate_uuidsGenerate cryptographically random version 4 UUIDs.
  • generate_passwordGenerate one random password and report its entropy in bits.
  • password_entropyScore a password policy in bits of entropy without generating one.
  • hash_textHash text with SHA-256, SHA-384, SHA-512, or SHA-1.
  • timestamp_reportRead a Unix timestamp or date string and lay out every scale and zone.
  • looks_like_formulaDetect a CSV value a spreadsheet would execute as a formula.
  • dedupe_rowsRemove duplicate CSV records, either whole-row or by key columns.
  • split_rowsSplit records into chunks of a fixed size or into a fixed number of parts.
  • extract_columnsKeep only the chosen columns from a set of CSV records.
  • csv_rows_to_htmlRender CSV records as an accessible HTML table.
  • geocode_estimateEstimate how long geocoding a number of rows would take.
  • qr_svgBuild a QR code and return it as a standalone SVG string.
  • pdf_infoRead a PDF page count, page sizes, rotations, and document metadata without changing it.
  • pdf_to_textRead the text out of a PDF, page by page, without changing the file.
  • pdf_mergeJoin several PDFs into one, in the order given, and write it to disk.
  • pdf_splitSplit one PDF into separate files by page ranges such as 1-3,7 and write them into a directory.
  • pdf_extract_pagesCopy the named pages of a PDF into a new PDF.
  • pdf_delete_pagesRemove the named pages from a PDF and write the rest to a new PDF.
  • pdf_rotate_pagesTurn the named pages of a PDF by 90, 180, or 270 degrees, added to the rotation they already carry.
  • pdf_reorder_pagesRewrite a PDF with its pages in a new order, given as every zero-based position exactly once.
  • wifi_payloadBuild the WIFI payload string a phone camera joins a network from.
  • readabilityScore text for reading difficulty across six standard formulas, with the longest sentences named.
  • remove_accentsRemove accents. Paste names, exports or any text carrying accents.
  • trim_whitespaceTrim whitespace. Paste text with stray indentation or blank lines.
  • extract_emailsExtract addresses. Paste an email thread, a signature block or a page of text.
  • extract_urlsExtract links. Paste a page of text, a bookmarks export or an email.
  • number_linesNumber the lines. Paste a list, a checklist or a block of code.
  • wrap_textWrap the text. Paste a paragraph, a commit message or an email.
  • remove_html_tagsRemove the tags. Paste HTML copied from a page or an email.
  • tabs_to_spacesConvert indentation. Paste code, a config file or a tab-separated list.
  • html_table_to_csvRead the table. Paste a table copied from a page, or the HTML around it.
  • colour_converterConvert the colours. #0f766e rgb(15 118 110) hsl(175 77% 26%).
  • base_converterConvert the numbers. 255 1024 42.
  • html_entitiesConvert the entities. Paste text to escape, or entities to decode.

Limits

  • No browser-only work. Compressing a PDF, removing an image background, and running OCR need DOM, Worker, WASM, or pdf.js APIs. They stay in the browser rather than being reimplemented here, because a second implementation would be a second set of results to keep in agreement.
  • No signature verification. decode_jwt reads a header and payload and does not check that the token is genuine. Treat the claims as untrusted until your own code verifies them.
  • No network. Nothing on this server opens a socket. There is no telemetry, no licence check, and no upload — which is why address geocoding, the website's one networked tool, is deliberately absent here.
  • No surprise writes. 6 tools write PDFs, and only to an absolute output path you pass in. They refuse to overwrite an existing file, write atomically through a staging file so an interrupted run cannot leave a half-written PDF, and reject network paths. The other 49 never touch your disk.
  • Indexes, not page numbers. parse_page_ranges returns zero-based indexes for code. The page a reader calls 1 is index 0.

Last updated 2026-09-11.