Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

app.ionelul.com tools

NPM · APP-IONELUL-MCP

Local tools: PDF, Office, e-Factura, OCR, images, video, speech, translation and nutrition.

Available components

+3 this week 66 Trust /100

Last scanned (12 hours ago)

Scores higher than 34% of npm servers

Category Documents and Files

Trust breakdown (7 categories)

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 Security99
  • 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
  • 7 of 39 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability57
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 10822 tokens (~171/item across 63 items; 63 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 Management47
  • Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage90
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 71% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "pdf_merge" implies "merge" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 63 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
Changelog

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.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 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 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.

  • 31 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.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 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 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 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 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +11
    • Known CVEs: unverified → pass ▲ security
    • Dependency health: unverified → 0.91 ▲ functional
  • 22 Oct 26 49

    First indexed and scored.

Diagnostics

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 5 Nov 2026 · Analysed npm/app-ionelul-mcp@0.12.0

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 39 packages
Packages resolved 39
Stale 7
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 63 exposed · ~10,822 tokens

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 →

Tool Tokens
audio_denoise ~180

Turns down background noise (fans, traffic, hum, keyboard) in a recording and keeps the voice, with RNNoise on this machine. Takes any audio or video ffmpeg reads; writes WAV, MP3, M4A, FLAC or OGG by the output extension (default <name>-clean.wav), or, for a video, the same video with the cleaned sound when the output is a video file. The sound comes out mono. Needs ffmpeg installed.

NameTypeReqDescription
amountnumber–1 removes as much as it can (default); lower blends some of the original back
filestringyes–
outputstring–Default: <name>-clean.wav next to the input; a .mp4/.mov/.mkv/.webm output keeps the video
overwriteboolean––

No output schema declared.

No examples provided.

barcode_create ~268

Makes a barcode as SVG (sized in mm, prints at exact size) or PNG (at a DPI, written into the file): EAN-13, EAN-8, UPC-A, UPC-E, ISBN, Code 128, Code 39, Code 93, ITF-14, Interleaved 2 of 5, GS1-128, Codabar, Data Matrix, GS1 Data Matrix, PDF417 and Aztec. EAN/UPC check digits are added when left out.

NameTypeReqDescription
backgroundstring–Hex or "transparent"
colorstring––
dpiinteger–PNG resolution (default 300)
heightMMnumber–Bar height in mm (1D codes)
moduleMMnumber–Narrowest bar in mm (default per type, e.g. 0.33 for EAN)
outputstringyes.svg or .png file
overwriteboolean––
showTextboolean–Human-readable line under 1D codes (default true)
textstringyesThe value, e.g. "590123412345" or "(01)09501101530003(17)271231"
typestringyes–

No output schema declared.

No examples provided.

base64 ~176

Encodes text or any file to Base64 (optionally URL-safe or wrapped at 76 columns, e.g. for data: URLs and e-mail), decodes Base64 back to text or to a file, and percent-encodes or decodes URLs.

NameTypeReqDescription
filestring–Read the text from this file instead (UTF-8)
fullUrlboolean–URL modes: keep : / ? # & = (encodeURI) instead of encoding a single component
modestringyes–
outputstring–Write the result here; needed when decoded bytes are not text
overwriteboolean––
textstring––
urlSafeboolean–Base64url alphabet without padding
wrapboolean–Wrap Base64 at 76 characters

No output schema declared.

No examples provided.

code_read ~101

Finds and decodes every QR code, Micro QR, Data Matrix, Aztec, PDF417 and 1D barcode (EAN, UPC, Code 128/39/93, ITF, Codabar, DataBar) in a PNG, JPEG, GIF or BMP image, and explains the content: Wi-Fi login, contact card, event, payment, GS1 fields, product code or link (with its domain).

NameTypeReqDescription
filesarrayyes–

No output schema declared.

No examples provided.

color_convert ~157

Converts a colour (hex, rgb(), hsl(), hwb(), hsv(), cmyk(), lab(), lch(), oklab(), oklch(); not CSS names) to every format. With `background`, gives the WCAG 2 contrast ratio, the AA/AAA verdicts and, when it fails, the nearest colour that passes. Can add a tint/shade scale and harmonies.

NameTypeReqDescription
backgroundstring–Check contrast against this colour
colorstringyes–
harmoniesboolean––
scaleboolean–Nine tints and shades, light to dark
targetnumber–Contrast ratio to fix towards (default 4.5, AA for normal text)

No output schema declared.

No examples provided.

currency_convert ~118

Converts an amount between currencies at the European Central Bank reference rates (published each working day, via the Frankfurter API). Only the rate list is fetched; the amount stays on this machine.

NameTypeReqDescription
amountnumberyes–
fromstringyesISO code, e.g. "EUR"
toarray–ISO codes; leave out for RON, EUR, USD, GBP, CHF, HUF, PLN, CZK, SEK, NOK, DKK, TRY, JPY, CNY, CAD, AUD

No output schema declared.

No examples provided.

cv_to_pdf ~310

Typesets a CV with XeLaTeX (TeX Live 2026) on this machine and writes the PDF. Give structured `cv` data for the Classic, Modern or Academic template (Academic: Latin Modern with small caps, a skills table, education grouped by school), or your own LaTeX in `tex`/`texFile`. Projects and awards take one line as a paragraph, several as bullets. Only bundled packages are available (fontspec, geometry, xcolor, enumitem, titlesec, hyperref, tabularx, multicol, paracol, fontawesome5 and their dependencies); fonts: Linux Libertine, Biolinum, Latin Modern. The first call downloads the engine (~21 MB) from app.ionelul.com and caches it; the CV is never sent anywhere.

NameTypeReqDescription
accentstring–Modern template colour, hex without #
cvobject––
langstring–Language of the section titles (default en)
outputstring–PDF path. Default: <texFile>.pdf, or cv.pdf in the current folder
overwriteboolean––
saveTexboolean–Also write the .tex next to the PDF (default false)
templatestring–For `cv` (default classic)
texstring–LaTeX source instead of `cv`
texFilestring–Path to a .tex file instead of `cv`

No output schema declared.

No examples provided.

document_anonymize ~424

Finds personal data in a .docx or text file (or in `text`) and replaces it: names after titles and court roles (Mr., Frau, domnul, reclamantul…), addresses, national ID numbers checked by their control digit (CNP, PESEL, EGN, TC Kimlik, DNI/NIE, codice fiscale, NIR, SSN, NINO, rodné číslo), ID card and passport numbers, dates of birth, e-mails, phones, IBANs and cards, licence plates and IPs; companies and places on request. The same person always gets the same label ([Person 1]). Word files keep their formatting; author fields are cleared. Rules only (no AI model), so names with no title before them are found only when they also appear after one, or via `terms`. The originals are never returned: only counts, so the result can be shown to a model safely. Run it before reading a confidential file.

NameTypeReqDescription
filestring–A .docx, .txt, .md, .csv or other text file
hidearray–Kinds to hide; default all but organization and location
keeparray–Found values to leave as they are (e.g. the court, the lawyer)
key_outputstring–Also write a CSV key (label -> original) here, to reverse it later. Keep it apart from the document.
languagestring–Language of the labels ([Persoana 1], [Person 1]...); default en
outputstring–Where to write the result; default <name>-anonymized next to the input
overwriteboolean––
stylestring–label: [Person 1] (default); initials: P.I. for names; mask: █████
termsarray–Words or phrases to hide everywhere too (names, nicknames, case numbers)
textstring–Or the text itself

No output schema declared.

No examples provided.

efactura_read ~92

Reads a Romanian e-Factura (UBL 2.1 XML, or the .zip downloaded from ANAF SPV) and checks that its totals add up (EN 16931 BR-CO rules). Does not validate against the ANAF schema.

NameTypeReqDescription
filestringyes.xml or ANAF .zip
fullboolean–Return the whole parsed model instead of a summary

No output schema declared.

No examples provided.

efactura_to_pdf ~95

Turns an e-Factura XML (or every invoice in an ANAF .zip) into a readable A4 PDF.

NameTypeReqDescription
filestringyes.xml or ANAF .zip
languagestring–Labels and number format (default ro)
outputDirstring–Default: next to the input; files are named factura-<number>.pdf
overwriteboolean––

No output schema declared.

No examples provided.

favicon_create ~174

Makes the usual favicon set from a logo (JPEG, PNG, WebP, AVIF or JPEG XL): favicon.ico (16, 32, 48 px), 16/32 px PNGs, apple-touch-icon, the Android 192/512 icons and site.webmanifest, centred on a square with optional padding and background, plus the <link> tags to paste into <head>.

NameTypeReqDescription
backgroundstring–Hex fill behind the image (default transparent)
filestringyes–
namestring–App name for the manifest
outputDirstringyesFolder for the files
overwriteboolean––
paddingPercentnumber–Space around the image (default 0)
themeColorstring–Manifest colour (default the background or #ffffff)

No output schema declared.

No examples provided.

file_checksum ~102

Hashes files (streamed, so large files are fine) and optionally verifies them against an expected hash or a checksum file (sha256sum, md5sum or BSD format).

NameTypeReqDescription
algorithmsarray–Default: sha256, or guessed from `expected`
checksumFilestring–SHA256SUMS-style file to verify against, by file name
expectedstring–Hash every file should match
filesarrayyes–

No output schema declared.

No examples provided.

food_barcode ~109

Calories and macros of a packaged product from its EAN/UPC barcode (8, 12, 13 or 14 digits), from Open Food Facts. Only the code is sent. Use code_read first to get the code from a photo.

NameTypeReqDescription
codestringyesDigits only, e.g. "5449000000996"
gramsnumber–Also give the values for this amount
languagestring–Language of food and recipe names; default en

No output schema declared.

No examples provided.

food_search ~143

Looks up everyday foods (fruit, vegetables, grains, dairy, meat, fish, legumes, nuts, fats, sweets, drinks, dishes) in a built-in list of about 170, with Romanian dishes, and gives their calories and macros per 100 g and a usual portion. Names match in the chosen language, in English or in any other. Offline.

NameTypeReqDescription
categorystring––
languagestring–Language of food and recipe names; default en
limitinteger–Default 10
querystringyese.g. "chicken breast", "măr", "sarmale"; empty lists the category

No output schema declared.

No examples provided.

gif_create ~147

Joins JPEG, PNG, WebP, AVIF or JPEG XL images into an animated GIF, in the order given, each fitted (or cropped to fill) on a frame of one size.

NameTypeReqDescription
backgroundstring–Hex, behind contained frames (default #ffffff)
delayMsinteger–Time per frame (default 500)
filesarrayyes–
fitstring–Default contain
heightinteger––
loopboolean–Default true
outputstringyes.gif path
overwriteboolean––
widthinteger–Default: the first image, at most 800 px wide

No output schema declared.

No examples provided.

image_convert ~211

Re-encodes JPEG, PNG, WebP, AVIF and JPEG XL images with the Squoosh codecs (MozJPEG, OxiPNG, libwebp, libavif, libjxl): convert between formats, compress at a quality, and shrink to a maximum width/height or a percentage (Lanczos3, aspect kept, never enlarged). Metadata is not carried over.

NameTypeReqDescription
backgroundstring–Fill for transparent pixels when writing JPEG (default #ffffff)
filesarrayyes–
formatstring–Default same as the input
losslessboolean–WebP, AVIF and JPEG XL
maxHeightinteger––
maxWidthinteger––
outputDirstring–Default: <name>-converted.<ext> next to each input
overwriteboolean––
qualityinteger–Lossy formats (default 80)
scalenumber–Percent of the original size

No output schema declared.

No examples provided.

image_metadata_read ~78

Shows what a photo reveals: GPS position (with a map link), camera and lens, date taken, author and copyright, software and exposure, from EXIF, XMP and IPTC in JPEG, PNG, WebP, HEIC, AVIF and TIFF. Use image_strip_metadata to remove it.

NameTypeReqDescription
filestringyes–

No output schema declared.

No examples provided.

image_palette ~68

The main colours of a JPEG, PNG, WebP, AVIF or JPEG XL image (k-means in OKLab, transparent pixels ignored), largest share first, as hex, RGB and OKLCH.

NameTypeReqDescription
colorsinteger–Default 6
filestringyes–

No output schema declared.

No examples provided.

image_remove_background ~198

Cuts the subject (people, products, animals, objects) out of a JPEG, PNG, WebP, AVIF or JPEG XL photo with the ormbg AI model, on this machine. Writes a transparent PNG, WebP or AVIF, or the subject on a new colour; can crop to the subject. The first call installs Transformers.js with ONNX Runtime (about 450 MB) and downloads the model (45 MB) into the cache.

NameTypeReqDescription
backgroundstring–Fill behind the subject (default transparent)
cropboolean–Trim to the subject (default false)
filesarrayyes–
formatstring–Default png; jpeg needs a background
outputDirstring–Default: <name>-no-bg.<ext> next to each input
overwriteboolean––
qualityinteger–webp, avif and jpeg (default 90)

No output schema declared.

No examples provided.

image_strip_metadata ~93

Removes EXIF (GPS, camera, dates), XMP, IPTC and comments from JPEG, PNG and WebP without re-encoding: pixels stay byte for byte. Rotated photos keep only their orientation.

NameTypeReqDescription
filesarrayyes–
inPlaceboolean–Overwrite the originals instead
outputDirstring–Default: <name>-clean.<ext> next to each input

No output schema declared.

No examples provided.

image_to_svg ~141

Traces a JPEG, PNG, WebP, AVIF or JPEG XL into an SVG of filled paths (imagetracerjs). Best for logos, icons, drawings and scans with few colours. Presets: logo (8 colours), detailed (48), mono (black and white), gray, smooth.

NameTypeReqDescription
colorsinteger–Overrides the preset
filestringyes–
maxSideinteger–Longest side traced, in pixels (default 1000)
outputstring–Default: <name>.svg next to the input
overwriteboolean––
presetstring–Default logo

No output schema declared.

No examples provided.

image_upscale ~170

Enlarges JPEG, PNG, WebP, AVIF or JPEG XL images 2x or 4x with Real-ESRGAN (AI that restores detail), on this machine. Transparency is kept. The first call installs ONNX Runtime (about 113 MB) and downloads the model (5 MB) into the cache.

NameTypeReqDescription
filesarrayyes–
formatstring–Default same as the input
modelstring–general for photos (default), anime for drawings, cartoons and anime (faster)
outputDirstring–Default: <name>-<scale>x.<ext> next to each input
overwriteboolean––
qualityinteger–Lossy formats (default 90)
scale––Default 2

No output schema declared.

No examples provided.

images_to_pdf ~133

Puts images into one PDF, one per page, in the order given: A4 or Letter (orientation from each image, or fixed) with a margin, or pages the size of each image. JPEG and PNG go in untouched; WebP, AVIF and JPEG XL are converted to JPEG at quality 90.

NameTypeReqDescription
filesarrayyes–
marginMMnumber–Default 10
orientationstring––
outputstringyesPDF path
overwriteboolean––
pageSizestring–Default a4
titlestring––

No output schema declared.

No examples provided.

invoice_to_pdf ~206

Makes an A4 invoice, proforma or quote PDF: seller and buyer, dates, line items with VAT rates, totals with VAT per rate (rounded per rate, as accountants check them), payment details, notes and an optional PNG/JPEG logo. Labels and number/date formats in 14 languages. Not an e-Factura (no XML is made).

NameTypeReqDescription
buyerobjectyes–
currencystring–e.g. RON, EUR (default RON)
dueDatestring–YYYY-MM-DD
issueDatestringyesYYYY-MM-DD
itemsarrayyes–
kindstring–Default invoice
langstring–Labels and formats (default en)
logostring–PNG or JPEG file
notesstring––
numberstringyes–
outputstringyesPDF path
overwriteboolean––
sellerobjectyes–

No output schema declared.

No examples provided.

legal_deadline ~405

The last day of a procedural or legal time limit, with each counting step explained. Systems: ro-civil (Romanian Civil Procedure Code art. 181-183, clear days: neither first nor last day counts), ro-criminal (CPP art. 269, same), ro-custody (CPP art. 271, preventive measures: both ends count, no holiday extension), ro-civil-code (Civil Code art. 2551-2553, limitation periods), eu (Regulation 1182/71), generic (calendar or working days). A last day on a weekend or public holiday moves to the next working day. Public holidays are computed for any year for: RO, BG, DE, AT, FR, BE, NL, ES, IT, PT, PL, CZ, SK, HU, GB, IE, US (GB = England and Wales, US = federal).

NameTypeReqDescription
amountintegeryes–
countrystring–Holidays to skip: RO, BG, DE, AT, FR, BE, NL, ES, IT, PT, PL, CZ, SK, HU, GB, IE, US, or "" for weekends only; default RO for Romanian systems, none otherwise
days_offarray–Extra closed days (regional holidays, court closures)
directionstring–"before": at least N clear days before `start` (ro-civil and ro-criminal, days only)
extendboolean–generic only: move a closed last day to the next working day (default true)
languagestring–Language of the explanation; default en
startstringyesYYYY-MM-DD: the day the term runs from (service, judgment, event); for direction "before", the hearing date
systemstringyes–
unitstringyesworkingDays only for eu and generic; ro-custody counts days or months

No output schema declared.

No examples provided.

legal_letter ~415

Writes a ready-to-send letter citing the right articles: GDPR requests (gdprAccess art. 15, gdprRectification art. 16, gdprErasure art. 17, gdprObjection art. 21, gdprPortability art. 20, gdprConsent art. 7(3)), a formalNotice to pay (in Romanian it cites art. 1522 Civil Code and art. 1014 CPC) or a powerOfAttorney, in any of 14 languages, as PDF, .docx or plain text. Fields left empty show as ________ and are listed in the reply.

NameTypeReqDescription
datestring–YYYY-MM-DD; default today
documentstringyes–
fieldsobject–Document fields: gdprAccess: reference, copy (check), details (textarea); gdprRectification: reference, incorrect (textarea), correct (textarea); gdprErasure: reference, groundNotNeeded (check), grou…
languagestring–Language of the letter; default en
outputstring–.pdf, .docx or .txt path; without it the text is returned
overwriteboolean––
placestring––
recipientobject–Not used by powerOfAttorney
senderobjectyesWho writes (the principal, for a power of attorney)

No output schema declared.

No examples provided.

logo_create ~256

Builds a text logo as SVG: a shape with initials (circle, rounded, square, hexagon, diamond, shield) beside or above the name and tagline, or the text alone. Colour presets: forest, ocean, sunset, mono, royal; any colour can be overridden. The text uses common system fonts, so it may look slightly different on other machines.

NameTypeReqDescription
backgroundstring–Default transparent
boldboolean–Default true
fontstring–Default sans
gradientboolean–Default true
layoutstring–Default stacked
letterSpacingnumber–Percent of the font size (default 0)
lettersstring–Mark inside the shape (default the initials of the name)
markColorstring––
namestringyes–
outputstringyes.svg file
overwriteboolean––
presetstring–Default forest
shapestring–Default circle
shapeColorstring––
shapeColor2string–End of the gradient
taglinestring––
taglineColorstring––
textColorstring––

No output schema declared.

No examples provided.

lorem_ipsum ~73

Placeholder text: paragraphs, sentences or words, optionally starting with the classic "Lorem ipsum dolor sit amet" and wrapped in <p> tags.

NameTypeReqDescription
classicboolean–Default true
countinteger–Default 3
htmlboolean––
unitstring–Default paragraphs

No output schema declared.

No examples provided.

markdown_to_html ~111

Converts Markdown (GitHub flavour: tables, task lists, fenced code) to an HTML fragment, or to a complete styled HTML page titled after the first heading.

NameTypeReqDescription
filestring–Read the text from this file instead (UTF-8)
outputstring–Default: <file>.html next to a Markdown file; otherwise returned
overwriteboolean––
pageboolean–A full HTML document with styles (default true)
textstring––

No output schema declared.

No examples provided.

meal_nutrition ~80

Adds up the calories and macros of foods from food_search (by id) in grams or portions, item by item and in total. For packaged food, pass its values per 100 g from food_barcode as a custom item.

NameTypeReqDescription
itemsarrayyes–
languagestring–Language of food and recipe names; default en

No output schema declared.

No examples provided.

nutrition_targets ~192

Daily calories, protein, carbohydrates, fat, fibre and water for an adult, from the Mifflin-St Jeor resting energy times an activity factor, with 250-750 kcal taken off to lose weight or added to gain (never below 1200 kcal for women, 1500 for men). Also BMI. Estimates, not medical advice.

NameTypeReqDescription
activitystringyessedentary (desk job), light (exercise 1-3 days/week), moderate (3-5), active (6-7), veryActive (physical job or twice a day)
agenumberyesYears
goalstring–kcal a day: loseFast -750, lose -500, loseSlow -250, maintain (default), gainSlow +250, gain +500
heightnumberyescm
sexstringyes–
weightnumberyeskg

No output schema declared.

No examples provided.

ocr_image ~195

Reads the text in JPEG, PNG, WebP, AVIF or JPEG XL images (scans, screenshots, photos of documents) with Tesseract on this machine. Languages: eng, ron, deu, fra, spa, ita, hun, por, nld, pol, ces, bul, ukr, tur (combine them, e.g. ["ron","eng"]). Low-confidence guesses are dropped; Romanian ş ţ become ș ț. The first use of a language downloads its model (2-15 MB) from app.ionelul.com and caches it; images never leave this machine.

NameTypeReqDescription
filesarrayyes–
languagesarray–Default ["eng"]
layoutstring–Join lines into paragraphs (default) or keep every line break
outputstring–Write all the text to this .txt file instead of returning it
overwriteboolean––

No output schema declared.

No examples provided.

office_to_pdf ~137

Converts .docx, .xlsx, .pptx or .odp to PDF without Office installed. Layout is redrawn, so it is close to but not identical with Office output; GIF/WebP/BMP pictures show as placeholders.

NameTypeReqDescription
filestringyes–
gridlinesboolean–Excel: draw cell gridlines (default true)
includeHiddenboolean–PowerPoint: include hidden slides (default false)
outputstring–Default: <name>.pdf next to the input
overwriteboolean––
pageNumbersboolean–Word: number the pages (default false)

No output schema declared.

No examples provided.

password_generate ~200

Generates passwords, passphrases (EFF long word list, 7,776 words) or PINs with a cryptographically secure random generator, without modulo bias, and reports their entropy and strength.

NameTypeReqDescription
capitalizeboolean––
countinteger––
digitsboolean––
excludestring–Characters never to use
kindstring–Default password
lengthinteger–Password (default 20) or PIN (default 6) length
lowerboolean––
noAmbiguousboolean–Leave out I l 1 | O 0 o and quotes
numberboolean–Add a digit to one passphrase word
separatorstring–Passphrase separator (default "-")
symbolsboolean–All four default to true
upperboolean––
wordsinteger–Passphrase words (default 6)

No output schema declared.

No examples provided.

pdf_edit ~133

Adds a text watermark and/or page numbers, sets metadata, and protects with a password. With `password` and no `protect`, the output is an unlocked copy.

NameTypeReqDescription
filestringyes–
metadataobject–Replaces the document info; fields left out are cleared
outputstring–Default: <name>-edited.pdf next to the input
overwriteboolean–Replace the output file if it exists
pageNumbersobject––
passwordstring–Password of an encrypted PDF
protectobject––
watermarkobject––

No output schema declared.

No examples provided.

pdf_form_fill ~114

Writes values into fillable fields (names from pdf_form_read). Diacritics are supported.

NameTypeReqDescription
filestringyes–
flattenboolean–Make the values part of the page (default true)
outputstring–Default: <name>-filled.pdf next to the input
overwriteboolean–Replace the output file if it exists
passwordstring–Password of an encrypted PDF
valuesobjectyesField name -> value; checkboxes take true/false

No output schema declared.

No examples provided.

pdf_form_read ~50

Lists the fillable (AcroForm) fields of a PDF with their type, current value and options.

NameTypeReqDescription
filestringyes–
passwordstring–Password of an encrypted PDF

No output schema declared.

No examples provided.

pdf_info ~47

Page count, page sizes, metadata, encryption and form fields of a PDF.

NameTypeReqDescription
filestringyesPath to the PDF
passwordstring–Password of an encrypted PDF

No output schema declared.

No examples provided.

pdf_merge ~70

Joins PDFs into one, in the order given. Each input can pick its pages ("1-3, 5, 8-").

NameTypeReqDescription
filesarrayyes–
outputstringyesPath of the merged PDF
overwriteboolean–Replace the output file if it exists

No output schema declared.

No examples provided.

pdf_organize ~143

Builds a new PDF from the pages listed, in that order (pages left out are deleted), optionally rotating some of them.

NameTypeReqDescription
filestringyes–
outputstring–Default: <name>-organized.pdf next to the input
overwriteboolean–Replace the output file if it exists
pagesstring–New page order, e.g. "3, 1-2, 5-" (default: all pages)
passwordstring–Password of an encrypted PDF
rotate––Clockwise rotation in degrees
rotatePagesstring–Original page numbers to rotate (default: all)

No output schema declared.

No examples provided.

pdf_sign ~237

Places a signature, stamp or logo image (a transparent PNG works best; JPEG, WebP, AVIF and JPEG XL too) on chosen pages, at a corner or at exact millimetres, keeping its proportions. This is a visible signature, not a cryptographic (digital certificate) one.

NameTypeReqDescription
filestringyesPath to the PDF
imagestringyesSignature or stamp image
marginMMnumber–Distance from the edges for `position` (default 15)
outputstring–Default: <name>-signed.pdf
overwriteboolean–Replace the output file if it exists
pagesstring–Page ranges, e.g. "1, 3-5"; default the last page
passwordstring–Password of an encrypted PDF
positionstring–Default bottom-right
widthMMnumber–Default 50
xMMnumber–Left edge from the page’s left, in mm (instead of position)
yMMnumber–Bottom edge from the page’s bottom, in mm

No output schema declared.

No examples provided.

pdf_split ~137

Splits a PDF into several files: one per range ("1-3, 4-6") or every N pages.

NameTypeReqDescription
everyinteger–Pages per file, when no ranges are given (default 1)
filestringyes–
outputDirstring–Folder for the parts (default: next to the input)
overwriteboolean–Replace the output file if it exists
passwordstring–Password of an encrypted PDF
rangesstring–Comma-separated groups, each becomes a file, e.g. "1-3, 4, 5-"

No output schema declared.

No examples provided.

pdf_to_excel ~167

Finds tables in a PDF from its text layout and writes them to .xlsx (or .csv). Works on statements, price lists and reports; not on scans.

NameTypeReqDescription
filestringyes–
includeTextboolean–Keep text outside tables (page layout only, default true)
layoutstring–One sheet per page (default) or per table
numbersstring–Number format: auto, 1.234,56 (comma), 1,234.56 (dot) or keep as text
outputstring–.xlsx or .csv; default <name>.xlsx next to the input
overwriteboolean–Replace the output file if it exists
passwordstring–Password of an encrypted PDF

No output schema declared.

No examples provided.

pdf_to_word ~96

Rebuilds the text of a PDF as an editable .docx: paragraphs, headings, bold and italic. Tables and columns come out as paragraphs; scanned pages are skipped.

NameTypeReqDescription
filestringyes–
outputstring–Default: <name>.docx next to the input
overwriteboolean–Replace the output file if it exists
passwordstring–Password of an encrypted PDF

No output schema declared.

No examples provided.

qr_create ~324

Makes a QR code as SVG (styled dots and eyes, any size) or PNG (square modules) from text, a link, Wi-Fi login, e-mail, phone, SMS, contact card, location or calendar event. Fields per type: url: url; text: text; wifi: ssid, password, security, hidden; email: to, subject, body; phone: phone; sms: phone, message; vcard: firstName, lastName, phone, email, company, title, website, street, city, zip, country; location: lat, lng; event: title, start, end, location, description. UTF-8, so diacritics and emoji work.

NameTypeReqDescription
backgroundstring–Hex or "transparent", default #ffffff
colorstring–Hex, default #000000
dotStylestring–SVG only
eyeDotStylestring–SVG only
eyeFrameStylestring–SVG only
fieldsobject–Fields of the type, e.g. {"ssid":"Home","password":"..."}
levelstring–Error correction (default M)
margininteger–Quiet zone in modules (default 4)
outputstringyes.svg or .png file
overwriteboolean––
sizeinteger–PNG width in pixels (default 1024)
textstring–Shortcut for type text / the url of type url
typestring–Default text

No output schema declared.

No examples provided.

recipe_suggest ~110

Suggests built-in recipes (breakfast, lunch, dinner, snack; Romanian dishes included) whose serving fits the calories left, preferring protein-rich ones, with nutrition per serving, ingredients and steps in the chosen language.

NameTypeReqDescription
kcalnumberyesCalories left for the day
languagestring–Language of food and recipe names; default en
limitinteger–Default 3
mealstring––
proteinnumber–Protein left, g

No output schema declared.

No examples provided.

regex_generate ~212

Writes a JavaScript regular expression, without AI: from examples of what should (and optionally should not) match, worked out run by run and checked on every example; or from a description, picked from a library of common patterns (email, URL, IP, IBAN, Romanian CNP/CUI/plates/phones, dates, times, money, UUID...); or from a format such as "DD.MM.YYYY" or "AA 99 AAA" (9 a digit, A an upper-case letter, a lower-case, X letter or digit, DD/MM/YYYY/HH/mm date and time parts, \ for a literal).

NameTypeReqDescription
counterExamplesarray–Values that must not match
descriptionstring–What to match, in words (any language) or as a format like DD.MM.YYYY
examplesarray–Values that must match
wholeboolean–Match whole values with ^...$ (default true); false finds the pattern inside text

No output schema declared.

No examples provided.

regex_test ~141

Runs a JavaScript regular expression on a text: every match with its position and capture groups (numbered and named), and optionally the text with a replacement applied.

NameTypeReqDescription
filestring–Read the text from this file instead (UTF-8)
flagsstring–e.g. "gi" (default "g")
limitinteger–Matches listed (default 100)
patternstringyesWithout slashes, e.g. "(\d{4})-(\d{2})"
replacestring–Replacement, with $1, $<name> and $&
textstring––

No output schema declared.

No examples provided.

romanian_diacritics ~155

Adds missing Romanian diacritics (ă â î ș ț) from a dictionary of ~70,000 words, fixes the old cedilla letters (ş ţ to ș ț), or removes diacritics. With `add`, words that can be spelled more than one way get the most common form and are listed with their alternatives.

NameTypeReqDescription
filestring–Read the text from this file instead (UTF-8)
modestringyesadd: put diacritics in; fix: ş ţ to ș ț; remove: strip them
outputstring–Write the result to this file instead of returning it
overwriteboolean––
textstring––

No output schema declared.

No examples provided.

speech_to_text ~208

Transcribes speech from any audio or video file ffmpeg can read with OpenAI Whisper, on this machine: plain text, SRT or WebVTT subtitles, or text with timestamps. About 100 languages, detected automatically; can also translate the speech into English. Models: tiny (41 MB), base (77 MB), small (249 MB); bigger is slower and more accurate. Needs ffmpeg. The first call installs Transformers.js with ONNX Runtime (about 450 MB) and downloads the model into the cache.

NameTypeReqDescription
filestringyes–
formatstring–Default txt
languagestring–ISO 639-1 code such as "ro" (default: detected)
modelstring–Default base
outputstring–Default: <name>.<format> next to the input (.txt for timestamped)
overwriteboolean––
taskstring–translate gives English text (default transcribe)

No output schema declared.

No examples provided.

Install

How do I install the app.ionelul.com tools MCP server?

app.ionelul.com tools runs locally as an npm package, launched with npx -y app-ionelul-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · app-ionelul-mcp

# add to Claude Code
claude mcp add com-ionelul-app -- npx -y app-ionelul-mcp
Common questions

What is the app.ionelul.com tools MCP server?

app.ionelul.com tools is an MCP server listed in the public MCP registry as com.ionelul/app. Local tools: PDF, Office, e-Factura, OCR, images, video, speech, translation and nutrition. This page covers its npm package (app-ionelul-mcp).

Is the app.ionelul.com tools MCP server safe to use?

app.ionelul.com tools scores 66 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 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 app.ionelul.com tools MCP server expose?

app.ionelul.com tools exposes 63 tools: pdf_info, pdf_merge, pdf_split, pdf_organize, pdf_edit, and 58 more. Their descriptions and schemas cost roughly 10,822 tokens of context every time the server is loaded.

Is the app.ionelul.com tools MCP server still maintained?

app.ionelul.com tools is still listed as active in the MCP registry. We last reached this channel on 5 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 app.ionelul.com tools MCP server under?

app.ionelul.com tools declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.