Connect over MCP
Give your assistant the formatika tools and ask for files to be processed in words, not through a browser. The files stay on your machine.
How to connect
No installation and no account: npx fetches the package on first run. The free daily allowance covers occasional work.
Claude Code
One command in the terminal and you are done.
claude mcp add formatika -- npx -y @formatika/mcp
Claude Desktop, Cursor and others
Add this to the mcpServers section of the client configuration. There is no secret in it — only a command and a package name, so it is safe to paste into a chat or commit to a repository.
{
"mcpServers": {
"formatika": {
"command": "npx",
"args": ["-y", "@formatika/mcp"]
}
}
}On Windows
Claude Desktop launches the server without a shell and cannot find npx directly. Wrapping it in cmd /c fixes that.
{
"mcpServers": {
"formatika": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@formatika/mcp"]
}
}
}Fully restart the client after editing the configuration — closing the window is not enough.
Then just ask
- Compress every photo in ./screenshots and put the results in ./web
- Convert all the HEIC files in this folder to JPEG
- Make a square 512×512 avatar out of portrait.png
A key for larger volumes
Without a key you get the free daily allowance. If that is not enough, create a key in your account and pass it as an environment variable.
{
"mcpServers": {
"formatika": {
"command": "npx",
"args": ["-y", "@formatika/mcp"],
"env": { "FORMATIKA_API_KEY": "fk_..." }
}
}
}FORMATIKA_URL points somewhere else — useful if you run formatika yourself.
Tools: 34
The list comes from the service at start-up, so it never lags behind what formatika can actually do. Every tool takes paths — one or more files — and an optional outputDir. Results are written next to the source, and existing files are never overwritten: a name that is taken gets a number.
Images
| image_convert | Convert images between JPG, PNG, WebP, AVIF and HEIC. Resize and strip EXIF along the way. |
| image_resize | Change the dimensions of a photo or picture. Fits within your numbers without enlarging. |
| image_compress | Make a photo lighter — down to a size limit or by quality. Handy when a form refuses a large file. |
| image_crop | Cut a photo to a ratio — square for an avatar, 16:9 for a cover. Nothing gets scaled down. |
| image_rotate | Turn a photo by 90, 180 or 270 degrees, or mirror it. Sideways phone shots get fixed. |
| image_metadata | Strip the camera model, the date and — most importantly — the coordinates from a photo. JPEG and PNG are cleaned byte by byte, so the picture itself is not touched. |
| image_palette | Pull the main colours out of a picture and get ready-made CSS variables. Runs in your browser: the photo never leaves it. |
Audio
| audio_convert | Convert audio between MP3, AAC, OPUS, FLAC, WAV and OGG. Pick a bitrate, drop it to mono, change the sample rate. |
| audio_extract | Pull the soundtrack out of a video file. When the track can be lifted as is, nothing is re-encoded and nothing is lost. |
| audio_trim | Cut a fragment out of a recording by timecodes. By default the stream is copied, so the cut costs no quality. |
| audio_normalize | Even out loudness to the EBU R128 broadcast standard, in two passes — so the recording does not breathe. |
| audio_merge | Join several recordings into one, in the order you picked. Matching files are joined without re-encoding — instantly and with no quality lost. |
| audio_silence-trim | Cut the silence at the start and the end of a recording. Pauses inside are left alone — in speech they carry meaning. |
| audio_tags | Change the title, artist and album. The audio itself is copied untouched, so nothing is lost and it takes no time. |
Video
| video_convert | Turn a video into MP4, WebM or MKV. MP4 plays everywhere, WebM is for the web, MKV is what you usually need to open somewhere else. |
| video_compress | Fit a recording into a given number of megabytes — to send by email or messenger. We work out the bitrate for your limit and encode in two passes to hit it. |
| video_resize | Convert a recording to 1080p, 720p, 480p or 360p. Width follows the original proportions, so nothing gets stretched. Upscaling is refused: it adds no detail and only inflates the file. |
| video_trim | Cut out a fragment by timecodes. The stream is copied without re-encoding, so it is fast and lossless. If the cut cannot land on a keyframe, we re-encode and say so. |
| video_mute | Drop the sound track. The picture is copied as is — no quality loss and no waiting. |
| video_to-gif | Build a GIF from a fragment. The palette is generated for your specific video in a separate pass — without that you get noise instead of a picture. |
| video_subtitles | Burn subtitles into the picture or attach them as a track. Burned-in subtitles show everywhere, even where nobody turns them on; attached ones the viewer can switch off, and the picture is not re-encoded. |
| video_thumbnail | Grab a frame for a cover or preview. Exactly one frame is decoded, so an hour of video costs no more than a minute. |
| pdf_merge | Join several PDF files into one, in the order you picked. Nothing is re-rendered: pages are copied as they are. |
| pdf_split | Pull pages out of a PDF — a range, a few ranges, or every page as its own file. |
| pdf_pages | Turn pages that were scanned sideways and drop the ones you do not need — in one pass over the document. |
| pdf_from-image | Turn photos and scans into one PDF, in the order you picked. HEIC from an iPhone works too. |
| pdf_compress | Make a PDF lighter by re-encoding the images inside it. If the result is not meaningfully smaller, you get the original back — untouched. |
Documents
| document_convert | Word, Excel and PowerPoint to PDF so the layout survives the trip. Takes docx, xlsx, pptx as well as older doc, xls, ppt and open odt, ods, odp. |
Archives
| archive_zip | Put several files into one archive so you can send them as a single attachment. Packed in the browser — the files never reach a server. |
| archive_unzip | Get the files out of an archive. Paths like "../.." are defused, and an archive that expands out of all proportion to its size is refused. |
Text
| text_subtitles | Turn SRT into VTT and back, and shift the timings while you are at it. Runs in your browser — it is text, nothing needs a server. |
Data
| data_convert | Convert a table from one format to another. Commas and line breaks inside fields do not break the parser. Runs in the browser — the data stays with you. |
Utilities
| utility_hash | Work out the MD5, SHA-1, SHA-256 or SHA-512 of a file to check that what you downloaded is what was published. The file never leaves your device. |
| utility_base64 | Encode a file as base64 — to paste an image straight into CSS, say — or decode a base64 string back into a file. The direction is worked out for you. |
What happens to the files
Only what cannot be handled locally goes to the server, and only for as long as the work takes. After that the files are deleted: two hours without an account, twenty-four hours with one. They are not read, not shared and not used to train anything.
Connect by URL, nothing to install
Clients that cannot spawn local processes — web assistants and third-party platforms — get the same set of tools over HTTP. An access key is optional: without one you get the free daily allowance.
{
"mcpServers": {
"formatika": {
"type": "http",
"url": "https://formatika.app/api/mcp"
}
}
}With an access key, add the header Authorization: Bearer <key> — the allowance grows and jobs show up in your account history.
Files travel as base64 and results come back as a link valid for 15 minutes. That is a third more bytes and it runs into the model context window: a five-megabyte photo becomes seven megabytes of text. For files on disk the npx package stays the better way — it simply reads the path.