npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

app-ionelul-mcp

v0.10.0

Published

Local MCP server with the app.ionelul.com tools: PDF, Office to PDF, e-Factura, invoices, LaTeX CV, OCR, QR codes and barcodes, image conversion, AI image and video upscaling, video conversion, frames, GIFs and background removal, noise removal, regex gen

Readme

app-ionelul-mcp

The file tools from app.ionelul.com as a local MCP server. It runs on your machine over stdio: files are read from your disk and written next to them, nothing is uploaded.

Install

Claude Code:

claude mcp add ionelul -- npx -y app-ionelul-mcp

Claude Desktop, Cursor and other clients (mcpServers in their config):

{
  "mcpServers": {
    "ionelul": { "command": "npx", "args": ["-y", "app-ionelul-mcp"] }
  }
}

Requires Node.js 20 or newer.

Tools

PDF and documents

| Tool | What it does | | --- | --- | | pdf_info | Pages, page sizes, metadata, encryption, form fields | | pdf_merge | Join PDFs, picking pages from each ("1-3, 5, 8-") | | pdf_split | One file per range, or every N pages | | pdf_organize | Reorder, delete and rotate pages | | pdf_edit | Watermark, page numbers, metadata, password protection; unlock with password | | pdf_sign | Place a signature or stamp image on chosen pages (visible, not a certificate signature) | | pdf_form_read / pdf_form_fill | Read and fill AcroForm fields, diacritics included | | pdf_to_excel | Tables found from the text layout, to .xlsx or .csv | | pdf_to_word | Editable .docx rebuilt from the text layer | | office_to_pdf | .docx, .xlsx, .pptx, .odp to PDF without Office | | document_anonymize | Hide names, addresses, national ID numbers (CNP, PESEL, SSN…), phones, e-mails, IBANs in .docx or text; returns only counts, never the originals | | legal_deadline | Last day of a legal term: Romanian procedure codes, Civil Code, EU Regulation 1182/71 or plain days, with public holidays of 17 countries, explained step by step | | legal_letter | GDPR requests (access, rectification, erasure, objection, portability, withdrawal of consent), a formal notice to pay or a power of attorney, in 14 languages, as PDF, .docx or text | | images_to_pdf | Images to one PDF, A4/Letter or page per image size | | efactura_read | Read a Romanian e-Factura (XML or ANAF SPV .zip) and check its totals | | efactura_to_pdf | Readable A4 PDF of each invoice | | invoice_to_pdf | Invoice, proforma or quote PDF with VAT per rate and a logo, in 14 languages | | cv_to_pdf | CV typeset with XeLaTeX from structured details (Classic, Modern or Academic template, projects and awards, section titles in 14 languages) or your own .tex | | ocr_image | Text from scans, screenshots and photos, in 14 languages |

Images

| Tool | What it does | | --- | --- | | image_convert | Convert between JPEG, PNG, WebP and AVIF, compress, resize (Squoosh codecs) | | image_to_svg | Trace a logo or drawing into SVG paths | | image_palette | Main colours with their share | | image_metadata_read | GPS position, camera, dates and author from EXIF, XMP and IPTC | | image_strip_metadata | Lossless removal of EXIF, GPS, XMP and IPTC from JPEG, PNG, WebP | | favicon_create | favicon.ico, PNG icons, site.webmanifest and the <link> tags | | gif_create | Animated GIF from images | | image_upscale | Enlarge 2× or 4× with Real-ESRGAN AI, transparency kept | | qr_create | QR code (SVG with styles, or PNG) for text, links, Wi-Fi, contacts, events and more | | barcode_create | EAN, UPC, ISBN, Code 128/39/93, ITF-14, GS1-128, Codabar, Data Matrix, PDF417, Aztec as SVG (mm) or PNG (DPI) | | code_read | Decode every QR code and barcode in an image and explain its content |

Video

| Tool | What it does | | --- | --- | | video_convert | Any video ffmpeg reads (AVI, WMV, FLV, H.266/VVC with ffmpeg 7+…) to MP4, MOV, MKV, WebM, MPEG-TS or AVI with H.264, H.265, AV1, VP9 or VP8, or the streams copied as they are (MKV to MP4 in seconds); the sound to MP3, M4A, OGG, WAV; compress, shrink, trim, mute | | video_to_gif | Animated GIF from a clip of up to 60 s, with a palette made for that clip | | video_upscale | Enlarge a clip of up to 60 s 2× or 4× with Real-ESRGAN AI, frame by frame, up to 4K; sound kept, OpenCV mp4v read too | | video_frames | Still images every N seconds, a set number spread over the clip, one per scene change, or every frame, as PNG/JPG/WebP named by their time | | video_remove_background | Key out a green/blue screen or plain wall (colour found from the frame edges, or given) into a transparent WebM (VP9 alpha) or an MP4 on a new colour; sound kept | | audio_denoise | Remove background noise (fans, traffic, hum, keyboard) with RNNoise from any audio or video; WAV/MP3/M4A/FLAC/OGG, or the video with its sound cleaned |

Text and utilities

| Tool | What it does | | --- | --- | | romanian_diacritics | Add missing ă â î ș ț, fix ş ţ, or remove diacritics | | text_stats | Words, characters, sentences, reading time, keywords | | text_case | Upper, title, camel, snake, kebab… and line clean-ups | | text_diff | Unified diff of two texts or files | | markdown_to_html | Markdown to a styled HTML page | | regex_test | Matches, groups and replacement for a regular expression | | regex_generate | A regular expression from examples (and counter-examples), a description (email, IBAN, CNP, dates…) or a format like DD.MM.YYYY, without AI | | text_summarize | Extractive summary in any language: the key sentences, word for word and in order | | base64 | Base64 for text and files, URL encoding | | password_generate | Passwords, passphrases and PINs from a secure random source, with entropy | | uuid | UUID v4 / v7, or inspect one | | lorem_ipsum | Placeholder text | | unit_convert | Length, mass, volume, temperature, speed, data, energy and more | | timestamp_convert | Unix timestamps and wall times across time zones | | color_convert | Colour formats, WCAG contrast and the nearest passing colour | | file_checksum | MD5, SHA-1/2/3, BLAKE3, CRC32, xxHash64; verify against a hash or SHA256SUMS |

Outputs never replace an existing file unless the call passes overwrite: true.

cv_to_pdf needs a LaTeX engine: the first call downloads it (~21 MB) from app.ionelul.com, checks it against the sha256 in the server, and caches it in ~/.cache/app-ionelul-mcp/latex. Only the engine is downloaded; your CV stays on your machine. Set IONELUL_LATEX_ASSETS to a folder or URL to load it from somewhere else.

video_convert, video_to_gif, video_upscale, video_frames, video_remove_background and audio_denoise use the ffmpeg installed on your machine (brew install ffmpeg, sudo apt install ffmpeg or winget install ffmpeg); set FFMPEG_PATH to use another binary. ffmpeg itself is not bundled or downloaded.

image_upscale and video_upscale run Real-ESRGAN on ONNX Runtime. To keep the server small, ONNX Runtime (about 113 MB) is not part of the package: the first upscale installs it with npm into ~/.cache/app-ionelul-mcp, and the model (2.5 or 4.9 MB) is downloaded from app.ionelul.com, checked against its sha256 and cached there too. Set IONELUL_UPSCALE_MODELS to a folder or URL to load the models from somewhere else.

ocr_image downloads each language's model (2-15 MB) from app.ionelul.com on first use and caches it in ~/.cache/app-ionelul-mcp/tesseract; set IONELUL_TESSERACT_LANG to load them from elsewhere.

Not in the server, because they need a browser canvas, video codecs or large AI models: PDF compression, redaction, OCR of scanned PDFs (and scanned pages in pdf_to_word), background removal, face blurring, watermark removal, speech and recording, and GIF/WebP/BMP pictures inside Office files (they show as placeholders).

License

MIT. The bundled third-party code and data keep their own licenses, listed in dist/THIRD-PARTY-NOTICES.txt.