app.ionelul.com tools
NPM · APP-IONELUL-MCP
Local tools: PDF, Office, e-Factura, OCR, images, video, speech, translation and nutrition.
Available components
Last scanned (12 hours ago)
Scores higher than 34% 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 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
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 13 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
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
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.
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 →
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 →
audio_denoise Remove background noise ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | 1 removes as much as it can (default); lower blends some of the original back |
| file | string | yes | – |
| output | string | – | Default: <name>-clean.wav next to the input; a .mp4/.mov/.mkv/.webm output keeps the video |
| overwrite | boolean | – | – |
No output schema declared.
No examples provided.
barcode_create Create a barcode ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Hex or "transparent" |
| color | string | – | – |
| dpi | integer | – | PNG resolution (default 300) |
| heightMM | number | – | Bar height in mm (1D codes) |
| moduleMM | number | – | Narrowest bar in mm (default per type, e.g. 0.33 for EAN) |
| output | string | yes | .svg or .png file |
| overwrite | boolean | – | – |
| showText | boolean | – | Human-readable line under 1D codes (default true) |
| text | string | yes | The value, e.g. "590123412345" or "(01)09501101530003(17)271231" |
| type | string | yes | – |
No output schema declared.
No examples provided.
base64 Base64 and URL encoding ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | Read the text from this file instead (UTF-8) |
| fullUrl | boolean | – | URL modes: keep : / ? # & = (encodeURI) instead of encoding a single component |
| mode | string | yes | – |
| output | string | – | Write the result here; needed when decoded bytes are not text |
| overwrite | boolean | – | – |
| text | string | – | – |
| urlSafe | boolean | – | Base64url alphabet without padding |
| wrap | boolean | – | Wrap Base64 at 76 characters |
No output schema declared.
No examples provided.
code_read Read QR codes and barcodes ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
No output schema declared.
No examples provided.
color_convert Colour formats and contrast ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Check contrast against this colour |
| color | string | yes | – |
| harmonies | boolean | – | – |
| scale | boolean | – | Nine tints and shades, light to dark |
| target | number | – | Contrast ratio to fix towards (default 4.5, AA for normal text) |
No output schema declared.
No examples provided.
currency_convert Convert currencies ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | – |
| from | string | yes | ISO code, e.g. "EUR" |
| to | array | – | 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 CV to PDF with LaTeX ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| accent | string | – | Modern template colour, hex without # |
| cv | object | – | – |
| lang | string | – | Language of the section titles (default en) |
| output | string | – | PDF path. Default: <texFile>.pdf, or cv.pdf in the current folder |
| overwrite | boolean | – | – |
| saveTex | boolean | – | Also write the .tex next to the PDF (default false) |
| template | string | – | For `cv` (default classic) |
| tex | string | – | LaTeX source instead of `cv` |
| texFile | string | – | Path to a .tex file instead of `cv` |
No output schema declared.
No examples provided.
document_anonymize Anonymize a document ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | A .docx, .txt, .md, .csv or other text file |
| hide | array | – | Kinds to hide; default all but organization and location |
| keep | array | – | Found values to leave as they are (e.g. the court, the lawyer) |
| key_output | string | – | Also write a CSV key (label -> original) here, to reverse it later. Keep it apart from the document. |
| language | string | – | Language of the labels ([Persoana 1], [Person 1]...); default en |
| output | string | – | Where to write the result; default <name>-anonymized next to the input |
| overwrite | boolean | – | – |
| style | string | – | label: [Person 1] (default); initials: P.I. for names; mask: █████ |
| terms | array | – | Words or phrases to hide everywhere too (names, nicknames, case numbers) |
| text | string | – | Or the text itself |
No output schema declared.
No examples provided.
efactura_read Read and check an e-Factura ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | .xml or ANAF .zip |
| full | boolean | – | Return the whole parsed model instead of a summary |
No output schema declared.
No examples provided.
efactura_to_pdf e-Factura to PDF ~95
Turns an e-Factura XML (or every invoice in an ANAF .zip) into a readable A4 PDF.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | .xml or ANAF .zip |
| language | string | – | Labels and number format (default ro) |
| outputDir | string | – | Default: next to the input; files are named factura-<number>.pdf |
| overwrite | boolean | – | – |
No output schema declared.
No examples provided.
favicon_create Favicon pack from an image ~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>.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Hex fill behind the image (default transparent) |
| file | string | yes | – |
| name | string | – | App name for the manifest |
| outputDir | string | yes | Folder for the files |
| overwrite | boolean | – | – |
| paddingPercent | number | – | Space around the image (default 0) |
| themeColor | string | – | Manifest colour (default the background or #ffffff) |
No output schema declared.
No examples provided.
file_checksum File checksums ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| algorithms | array | – | Default: sha256, or guessed from `expected` |
| checksumFile | string | – | SHA256SUMS-style file to verify against, by file name |
| expected | string | – | Hash every file should match |
| files | array | yes | – |
No output schema declared.
No examples provided.
food_barcode Packaged food by 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Digits only, e.g. "5449000000996" |
| grams | number | – | Also give the values for this amount |
| language | string | – | Language of food and recipe names; default en |
No output schema declared.
No examples provided.
food_search Search everyday foods ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| language | string | – | Language of food and recipe names; default en |
| limit | integer | – | Default 10 |
| query | string | yes | e.g. "chicken breast", "măr", "sarmale"; empty lists the category |
No output schema declared.
No examples provided.
gif_create Animated GIF from images ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Hex, behind contained frames (default #ffffff) |
| delayMs | integer | – | Time per frame (default 500) |
| files | array | yes | – |
| fit | string | – | Default contain |
| height | integer | – | – |
| loop | boolean | – | Default true |
| output | string | yes | .gif path |
| overwrite | boolean | – | – |
| width | integer | – | Default: the first image, at most 800 px wide |
No output schema declared.
No examples provided.
image_convert Convert, compress and resize images ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Fill for transparent pixels when writing JPEG (default #ffffff) |
| files | array | yes | – |
| format | string | – | Default same as the input |
| lossless | boolean | – | WebP, AVIF and JPEG XL |
| maxHeight | integer | – | – |
| maxWidth | integer | – | – |
| outputDir | string | – | Default: <name>-converted.<ext> next to each input |
| overwrite | boolean | – | – |
| quality | integer | – | Lossy formats (default 80) |
| scale | number | – | Percent of the original size |
No output schema declared.
No examples provided.
image_metadata_read Read image metadata ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
No output schema declared.
No examples provided.
image_palette Colour palette of an image ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| colors | integer | – | Default 6 |
| file | string | yes | – |
No output schema declared.
No examples provided.
image_remove_background Remove the background of a photo ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Fill behind the subject (default transparent) |
| crop | boolean | – | Trim to the subject (default false) |
| files | array | yes | – |
| format | string | – | Default png; jpeg needs a background |
| outputDir | string | – | Default: <name>-no-bg.<ext> next to each input |
| overwrite | boolean | – | – |
| quality | integer | – | webp, avif and jpeg (default 90) |
No output schema declared.
No examples provided.
image_strip_metadata Remove image 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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| inPlace | boolean | – | Overwrite the originals instead |
| outputDir | string | – | Default: <name>-clean.<ext> next to each input |
No output schema declared.
No examples provided.
image_to_svg Image to SVG (vectorize) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| colors | integer | – | Overrides the preset |
| file | string | yes | – |
| maxSide | integer | – | Longest side traced, in pixels (default 1000) |
| output | string | – | Default: <name>.svg next to the input |
| overwrite | boolean | – | – |
| preset | string | – | Default logo |
No output schema declared.
No examples provided.
image_upscale AI image upscaling ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| format | string | – | Default same as the input |
| model | string | – | general for photos (default), anime for drawings, cartoons and anime (faster) |
| outputDir | string | – | Default: <name>-<scale>x.<ext> next to each input |
| overwrite | boolean | – | – |
| quality | integer | – | Lossy formats (default 90) |
| scale | – | – | Default 2 |
No output schema declared.
No examples provided.
images_to_pdf 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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| marginMM | number | – | Default 10 |
| orientation | string | – | – |
| output | string | yes | PDF path |
| overwrite | boolean | – | – |
| pageSize | string | – | Default a4 |
| title | string | – | – |
No output schema declared.
No examples provided.
invoice_to_pdf Invoice 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).
| Name | Type | Req | Description |
|---|---|---|---|
| buyer | object | yes | – |
| currency | string | – | e.g. RON, EUR (default RON) |
| dueDate | string | – | YYYY-MM-DD |
| issueDate | string | yes | YYYY-MM-DD |
| items | array | yes | – |
| kind | string | – | Default invoice |
| lang | string | – | Labels and formats (default en) |
| logo | string | – | PNG or JPEG file |
| notes | string | – | – |
| number | string | yes | – |
| output | string | yes | PDF path |
| overwrite | boolean | – | – |
| seller | object | yes | – |
No output schema declared.
No examples provided.
legal_deadline 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).
| Name | Type | Req | Description |
|---|---|---|---|
| amount | integer | yes | – |
| country | string | – | 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_off | array | – | Extra closed days (regional holidays, court closures) |
| direction | string | – | "before": at least N clear days before `start` (ro-civil and ro-criminal, days only) |
| extend | boolean | – | generic only: move a closed last day to the next working day (default true) |
| language | string | – | Language of the explanation; default en |
| start | string | yes | YYYY-MM-DD: the day the term runs from (service, judgment, event); for direction "before", the hearing date |
| system | string | yes | – |
| unit | string | yes | workingDays only for eu and generic; ro-custody counts days or months |
No output schema declared.
No examples provided.
legal_letter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD; default today |
| document | string | yes | – |
| fields | object | – | Document fields: gdprAccess: reference, copy (check), details (textarea); gdprRectification: reference, incorrect (textarea), correct (textarea); gdprErasure: reference, groundNotNeeded (check), grou… |
| language | string | – | Language of the letter; default en |
| output | string | – | .pdf, .docx or .txt path; without it the text is returned |
| overwrite | boolean | – | – |
| place | string | – | – |
| recipient | object | – | Not used by powerOfAttorney |
| sender | object | yes | Who writes (the principal, for a power of attorney) |
No output schema declared.
No examples provided.
logo_create Simple logo as SVG ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Default transparent |
| bold | boolean | – | Default true |
| font | string | – | Default sans |
| gradient | boolean | – | Default true |
| layout | string | – | Default stacked |
| letterSpacing | number | – | Percent of the font size (default 0) |
| letters | string | – | Mark inside the shape (default the initials of the name) |
| markColor | string | – | – |
| name | string | yes | – |
| output | string | yes | .svg file |
| overwrite | boolean | – | – |
| preset | string | – | Default forest |
| shape | string | – | Default circle |
| shapeColor | string | – | – |
| shapeColor2 | string | – | End of the gradient |
| tagline | string | – | – |
| taglineColor | string | – | – |
| textColor | string | – | – |
No output schema declared.
No examples provided.
lorem_ipsum Lorem ipsum ~73
Placeholder text: paragraphs, sentences or words, optionally starting with the classic "Lorem ipsum dolor sit amet" and wrapped in <p> tags.
| Name | Type | Req | Description |
|---|---|---|---|
| classic | boolean | – | Default true |
| count | integer | – | Default 3 |
| html | boolean | – | – |
| unit | string | – | Default paragraphs |
No output schema declared.
No examples provided.
markdown_to_html 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | Read the text from this file instead (UTF-8) |
| output | string | – | Default: <file>.html next to a Markdown file; otherwise returned |
| overwrite | boolean | – | – |
| page | boolean | – | A full HTML document with styles (default true) |
| text | string | – | – |
No output schema declared.
No examples provided.
meal_nutrition Nutrition of a meal ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | – |
| language | string | – | Language of food and recipe names; default en |
No output schema declared.
No examples provided.
nutrition_targets Daily calorie and macro 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.
| Name | Type | Req | Description |
|---|---|---|---|
| activity | string | yes | sedentary (desk job), light (exercise 1-3 days/week), moderate (3-5), active (6-7), veryActive (physical job or twice a day) |
| age | number | yes | Years |
| goal | string | – | kcal a day: loseFast -750, lose -500, loseSlow -250, maintain (default), gainSlow +250, gain +500 |
| height | number | yes | cm |
| sex | string | yes | – |
| weight | number | yes | kg |
No output schema declared.
No examples provided.
ocr_image OCR: text from images ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| languages | array | – | Default ["eng"] |
| layout | string | – | Join lines into paragraphs (default) or keep every line break |
| output | string | – | Write all the text to this .txt file instead of returning it |
| overwrite | boolean | – | – |
No output schema declared.
No examples provided.
office_to_pdf Word, Excel or PowerPoint 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| gridlines | boolean | – | Excel: draw cell gridlines (default true) |
| includeHidden | boolean | – | PowerPoint: include hidden slides (default false) |
| output | string | – | Default: <name>.pdf next to the input |
| overwrite | boolean | – | – |
| pageNumbers | boolean | – | Word: number the pages (default false) |
No output schema declared.
No examples provided.
password_generate Generate passwords ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| capitalize | boolean | – | – |
| count | integer | – | – |
| digits | boolean | – | – |
| exclude | string | – | Characters never to use |
| kind | string | – | Default password |
| length | integer | – | Password (default 20) or PIN (default 6) length |
| lower | boolean | – | – |
| noAmbiguous | boolean | – | Leave out I l 1 | O 0 o and quotes |
| number | boolean | – | Add a digit to one passphrase word |
| separator | string | – | Passphrase separator (default "-") |
| symbols | boolean | – | All four default to true |
| upper | boolean | – | – |
| words | integer | – | Passphrase words (default 6) |
No output schema declared.
No examples provided.
pdf_edit Watermark, number, protect or unlock a PDF ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| metadata | object | – | Replaces the document info; fields left out are cleared |
| output | string | – | Default: <name>-edited.pdf next to the input |
| overwrite | boolean | – | Replace the output file if it exists |
| pageNumbers | object | – | – |
| password | string | – | Password of an encrypted PDF |
| protect | object | – | – |
| watermark | object | – | – |
No output schema declared.
No examples provided.
pdf_form_fill Fill a PDF form ~114
Writes values into fillable fields (names from pdf_form_read). Diacritics are supported.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| flatten | boolean | – | Make the values part of the page (default true) |
| output | string | – | Default: <name>-filled.pdf next to the input |
| overwrite | boolean | – | Replace the output file if it exists |
| password | string | – | Password of an encrypted PDF |
| values | object | yes | Field name -> value; checkboxes take true/false |
No output schema declared.
No examples provided.
pdf_form_read Read PDF form fields ~50
Lists the fillable (AcroForm) fields of a PDF with their type, current value and options.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| password | string | – | Password of an encrypted PDF |
No output schema declared.
No examples provided.
pdf_info PDF info ~47
Page count, page sizes, metadata, encryption and form fields of a PDF.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | Path to the PDF |
| password | string | – | Password of an encrypted PDF |
No output schema declared.
No examples provided.
pdf_merge Merge PDFs ~70
Joins PDFs into one, in the order given. Each input can pick its pages ("1-3, 5, 8-").
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| output | string | yes | Path of the merged PDF |
| overwrite | boolean | – | Replace the output file if it exists |
No output schema declared.
No examples provided.
pdf_organize Reorder, rotate or delete PDF pages ~143
Builds a new PDF from the pages listed, in that order (pages left out are deleted), optionally rotating some of them.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| output | string | – | Default: <name>-organized.pdf next to the input |
| overwrite | boolean | – | Replace the output file if it exists |
| pages | string | – | New page order, e.g. "3, 1-2, 5-" (default: all pages) |
| password | string | – | Password of an encrypted PDF |
| rotate | – | – | Clockwise rotation in degrees |
| rotatePages | string | – | Original page numbers to rotate (default: all) |
No output schema declared.
No examples provided.
pdf_sign Sign or stamp a PDF ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | Path to the PDF |
| image | string | yes | Signature or stamp image |
| marginMM | number | – | Distance from the edges for `position` (default 15) |
| output | string | – | Default: <name>-signed.pdf |
| overwrite | boolean | – | Replace the output file if it exists |
| pages | string | – | Page ranges, e.g. "1, 3-5"; default the last page |
| password | string | – | Password of an encrypted PDF |
| position | string | – | Default bottom-right |
| widthMM | number | – | Default 50 |
| xMM | number | – | Left edge from the page’s left, in mm (instead of position) |
| yMM | number | – | Bottom edge from the page’s bottom, in mm |
No output schema declared.
No examples provided.
pdf_split Split PDF ~137
Splits a PDF into several files: one per range ("1-3, 4-6") or every N pages.
| Name | Type | Req | Description |
|---|---|---|---|
| every | integer | – | Pages per file, when no ranges are given (default 1) |
| file | string | yes | – |
| outputDir | string | – | Folder for the parts (default: next to the input) |
| overwrite | boolean | – | Replace the output file if it exists |
| password | string | – | Password of an encrypted PDF |
| ranges | string | – | Comma-separated groups, each becomes a file, e.g. "1-3, 4, 5-" |
No output schema declared.
No examples provided.
pdf_to_excel 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| includeText | boolean | – | Keep text outside tables (page layout only, default true) |
| layout | string | – | One sheet per page (default) or per table |
| numbers | string | – | Number format: auto, 1.234,56 (comma), 1,234.56 (dot) or keep as text |
| output | string | – | .xlsx or .csv; default <name>.xlsx next to the input |
| overwrite | boolean | – | Replace the output file if it exists |
| password | string | – | Password of an encrypted PDF |
No output schema declared.
No examples provided.
pdf_to_word 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| output | string | – | Default: <name>.docx next to the input |
| overwrite | boolean | – | Replace the output file if it exists |
| password | string | – | Password of an encrypted PDF |
No output schema declared.
No examples provided.
qr_create Create a QR code ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Hex or "transparent", default #ffffff |
| color | string | – | Hex, default #000000 |
| dotStyle | string | – | SVG only |
| eyeDotStyle | string | – | SVG only |
| eyeFrameStyle | string | – | SVG only |
| fields | object | – | Fields of the type, e.g. {"ssid":"Home","password":"..."} |
| level | string | – | Error correction (default M) |
| margin | integer | – | Quiet zone in modules (default 4) |
| output | string | yes | .svg or .png file |
| overwrite | boolean | – | – |
| size | integer | – | PNG width in pixels (default 1024) |
| text | string | – | Shortcut for type text / the url of type url |
| type | string | – | Default text |
No output schema declared.
No examples provided.
recipe_suggest Recipe ideas for what is left of the day ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| kcal | number | yes | Calories left for the day |
| language | string | – | Language of food and recipe names; default en |
| limit | integer | – | Default 3 |
| meal | string | – | – |
| protein | number | – | Protein left, g |
No output schema declared.
No examples provided.
regex_generate Write a regular expression ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| counterExamples | array | – | Values that must not match |
| description | string | – | What to match, in words (any language) or as a format like DD.MM.YYYY |
| examples | array | – | Values that must match |
| whole | boolean | – | Match whole values with ^...$ (default true); false finds the pattern inside text |
No output schema declared.
No examples provided.
regex_test Test a regular expression ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | Read the text from this file instead (UTF-8) |
| flags | string | – | e.g. "gi" (default "g") |
| limit | integer | – | Matches listed (default 100) |
| pattern | string | yes | Without slashes, e.g. "(\d{4})-(\d{2})" |
| replace | string | – | Replacement, with $1, $<name> and $& |
| text | string | – | – |
No output schema declared.
No examples provided.
romanian_diacritics 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | Read the text from this file instead (UTF-8) |
| mode | string | yes | add: put diacritics in; fix: ş ţ to ș ț; remove: strip them |
| output | string | – | Write the result to this file instead of returning it |
| overwrite | boolean | – | – |
| text | string | – | – |
No output schema declared.
No examples provided.
speech_to_text Transcribe speech ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| format | string | – | Default txt |
| language | string | – | ISO 639-1 code such as "ro" (default: detected) |
| model | string | – | Default base |
| output | string | – | Default: <name>.<format> next to the input (.txt for timestamped) |
| overwrite | boolean | – | – |
| task | string | – | translate gives English text (default transcribe) |
No output schema declared.
No examples provided.
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
claude mcp add com-ionelul-app -- npx -y app-ionelul-mcp
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.