app.ionelul.com tools

com.ionelul由 ionelul.com 发布v0.12.0更新于 Oct 30, 2026

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

概览

AI 生成的概览

本地 stdio MCP 服务器,集成 PDF、Office、电子发票、文本、图像、视频、语音、翻译与营养等离线工具。

可以做什么
  • 查看、合并、拆分、整理、编辑、签名 PDF 并读写表单字段;PDF 转 Excel 或 Word,Office 文件转 PDF
  • 对文档做匿名化处理,计算法定期间,生成 GDPR 或催款函,读取并渲染罗马尼亚 e-Factura 发票
  • 去除图片元数据、计算文件校验和,转换 Markdown、Base64、UUID、颜色、单位、货币与时间戳
  • 处理文本:罗马尼亚语变音符号、大小写转换、统计、差异比较、正则测试与生成、抽取式摘要、占位文本
  • 在本机翻译文本与字幕文件,查询食物、条码、餐食营养与每日营养目标
适用场景
适合希望在本机完成文档、文本与格式转换任务、不依赖云服务的场景,尤其是 PDF 处理、罗马尼亚法律与发票文书,或快速文本与营养计算。
运行要求
以 npm 包形式通过 npx 在桌面电脑上本地运行。可用 FFMPEG_PATH 指定 ffmpeg 可执行文件供视频、音频和语音工具使用(默认使用 PATH 中的 ffmpeg)。部分工具需要额外本地软件:排版简历需 XeLaTeX/TeX Live,首次翻译调用会安装模型。货币换算需联网获取欧洲央行汇率。
安装前请注意
多个工具会向磁盘写入文件(PDF 编辑、格式转换、生成的 PDF 与文档)。pdf_edit 可添加密码保护,document_anonymize 会改写个人数据,请检查输出。翻译首次使用会下载模型。food_barcode 仅将条码发送至 Open Food Facts,currency_convert 会从外部接口获取汇率。营养数据为估算值,不构成医疗建议。

安装

在 SourceWeft 中

  1. 打开 控制台中的 app.ionelul.com tools,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

工具

63

pdf_info

PDF info

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

输入参数file必填password

pdf_merge

Merge PDFs

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

输入参数files必填output必填overwrite

pdf_split

Split PDF

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

输入参数file必填everyrangespasswordoutputDiroverwrite

pdf_organize

Reorder, rotate or delete PDF pages

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

输入参数file必填pagesoutputrotatepasswordoverwriterotatePages

pdf_edit

Watermark, number, protect or unlock a PDF

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.

输入参数file必填outputprotectmetadatapasswordoverwritewatermarkpageNumbers

pdf_form_read

Read PDF form fields

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

输入参数file必填password

pdf_form_fill

Fill a PDF form

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

输入参数file必填outputvalues必填flattenpasswordoverwrite

pdf_to_excel

PDF to Excel

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.

输入参数file必填layoutoutputnumberspasswordoverwriteincludeText

pdf_to_word

PDF to Word

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.

输入参数file必填outputpasswordoverwrite

pdf_sign

Sign or stamp a PDF

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.

输入参数xMMyMMfile必填image必填pagesoutputwidthMMmarginMMpasswordpositionoverwrite

office_to_pdf

Word, Excel or PowerPoint to PDF

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.

输入参数file必填outputgridlinesoverwritepageNumbersincludeHidden

document_anonymize

Anonymize a document

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.

输入参数filehidekeeptextstyletermsoutputlanguageoverwritekey_output

efactura_read

Read and check an e-Factura

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.

输入参数file必填full

efactura_to_pdf

e-Factura to PDF

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

输入参数file必填languageoutputDiroverwrite

cv_to_pdf

CV to PDF with LaTeX

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.

输入参数cvtexlangaccentoutputsaveTextexFiletemplateoverwrite

image_strip_metadata

Remove image metadata

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.

输入参数files必填inPlaceoutputDir

file_checksum

File checksums

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).

输入参数files必填expectedalgorithmschecksumFile

romanian_diacritics

Romanian diacritics

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.

输入参数filemode必填textoutputoverwrite

text_stats

Text statistics

Counts words, characters (with and without spaces), sentences, paragraphs, lines and unique words; reading and speaking time; top keywords with their density.

输入参数filetext

text_case

Change case and clean up text

Converts text to a case (upper, lower, sentence, title, capitalize, inverse, alternating, camel, pascal, snake, constant, kebab, dot) or cleans it up (trim spaces, collapse blank lines, join lines, unwrap lines broken by PDF copies, straight quotes, sort, dedupe or reverse lines). Locale-aware (Turkish i, Romanian ș).

输入参数casefilelangtextoutputcleanupoverwrite

text_diff

Compare two texts

Line-by-line comparison of two texts or files, as a unified diff (like `diff -u`), with the number of lines added and removed.

输入参数leftrightcontextleftFilerightFileignoreCaseignoreWhitespace

base64

Base64 and URL encoding

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.

输入参数filemode必填textwrapoutputfullUrlurlSafeoverwrite

password_generate

Generate passwords

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.

输入参数kindcountlowerupperwordsdigitslengthnumberexcludesymbolsseparatorcapitalize另有 1 个

uuid

Generate or inspect UUIDs

Generates random UUIDs (v4) or time-ordered ones (v7, sortable by creation time), or inspects a UUID: its version, variant and, for v7, the time it was made.

输入参数countupperbraceshyphensinspectversion

markdown_to_html

Markdown to HTML

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.

输入参数filepagetextoutputoverwrite

regex_test

Test a regular expression

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.

输入参数filetextflagslimitpattern必填replace

regex_generate

Write a regular expression

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).

输入参数wholeexamplesdescriptioncounterExamples

text_summarize

Summarize a text

Extractive summary in any language: the sentences that best stand for the whole text (TextRank on TF-IDF), word for word and in their original order. No AI model, nothing invented.

输入参数filetextshareoutputoverwrite

lorem_ipsum

Lorem ipsum

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

输入参数htmlunitcountclassic

translate

Translate text offline

Translates text or a text file (.txt, .md, .srt, .vtt, .csv) between en, ro, de, fr, es, it, pt, nl, pl, hu, cs, bg, uk, tr, ru with OPUS-MT and M2M100 AI models, on this machine. Lines, paragraphs and subtitle timings are kept. The source language is detected when left out. The first call installs Transformers.js with ONNX Runtime (about 450 MB); each model is downloaded once (OPUS-MT about 113 MB, M2M100 about 632 MB).

输入参数to必填filefromtextoutputoverwrite

unit_convert

Convert units

Converts a value between units of one category, including temperature and fuel economy. Units by id: length: m, km, cm, mm, um, mi, yd, ft, in, nmi; mass: kg, g, mg, t, lb, oz, st, ct; volume: l, ml, m3, cm3, galus, galuk, qt, pt, cup, floz, tbsp, tsp; area: m2, km2, ha, cm2, mi2, ac, yd2, ft2, in2; temperature: c, f, k; speed: ms, kmh, mph, kn, fts, mach; time: ms, s, min, h, d, wk, mo, yr; data: bit, B, KB, MB, GB, TB, PB, KiB, MiB, GiB, TiB; energy: j, kj, cal, kcal, wh, kwh, btu, ev; power: w, kw, mw, hp, ps, btuh; pressure: pa, kpa, mpa, bar, mbar, atm, psi, mmhg; angle: deg, rad, grad, turn; fuel: kml, l100, mpgus, mpguk.

输入参数tofrom必填value必填

currency_convert

Convert currencies

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.

输入参数tofrom必填amount必填

timestamp_convert

Unix timestamps and time zones

Turns a Unix timestamp (seconds, ms, µs or ns, detected by length) or a wall-clock date and time in a zone into the instant in UTC, the time in other IANA zones (with daylight saving) and every timestamp unit. With nothing given it uses now.

输入参数dateunitzonezonestimestamp

color_convert

Colour formats and contrast

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.

输入参数color必填scaletargetharmoniesbackground

nutrition_targets

Daily calorie and macro targets

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.

输入参数age必填sex必填goalheight必填weight必填activity必填

meal_nutrition

Nutrition of a meal

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.

输入参数items必填language

food_barcode

Packaged food by barcode

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.

输入参数code必填gramslanguage

recipe_suggest

Recipe ideas for what is left of the day

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.

输入参数kcal必填meallimitproteinlanguage

qr_create

Create a QR code

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.

输入参数sizetexttypecolorlevelfieldsmarginoutput必填dotStyleoverwritebackgroundeyeDotStyle另有 1 个

barcode_create

Create a barcode

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.

输入参数dpitext必填type必填coloroutput必填heightMMmoduleMMshowTextoverwritebackground

code_read

Read QR codes and barcodes

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).

输入参数files必填

image_convert

Convert, compress and resize images

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.

输入参数files必填scaleformatqualitylosslessmaxWidthmaxHeightoutputDiroverwritebackground

image_to_svg

Image to SVG (vectorize)

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.

输入参数file必填colorsoutputpresetmaxSideoverwrite

images_to_pdf

Images to PDF

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.

输入参数files必填titleoutput必填marginMMpageSizeoverwriteorientation

favicon_create

Favicon pack from an image

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

输入参数file必填nameoutputDir必填overwritebackgroundthemeColorpaddingPercent

logo_create

Simple logo as SVG

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.

输入参数boldfontname必填shapelayoutoutput必填presetletterstaglinegradientmarkColoroverwrite另有 6 个

gif_create

Animated GIF from images

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.

输入参数fitloopfiles必填widthheightoutput必填delayMsoverwritebackground

image_palette

Colour palette of an image

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.

输入参数file必填colors

image_metadata_read

Read image metadata

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.

输入参数file必填

image_remove_background

Remove the background of a photo

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.

输入参数cropfiles必填formatqualityoutputDiroverwritebackground

invoice_to_pdf

Invoice PDF

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).

输入参数kindlanglogobuyer必填items必填notesnumber必填output必填seller必填dueDatecurrencyissueDate必填另有 1 个

ocr_image

OCR: text from images

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.

输入参数files必填layoutoutputlanguagesoverwrite

video_convert

Convert and compress video

Converts any video ffmpeg on this machine can read (AVI, WMV, FLV, MPEG, H.266/VVC with ffmpeg 7+…) to MP4, MOV, MKV, WebM, MPEG-TS or AVI, or extracts the sound to MP3, M4A, OGG or WAV. Picks the video codec (H.264, H.265, AV1, VP9, VP8) and audio codec, or copies the streams with no re-encode (videoCodec/audioCodec "copy", e.g. MKV to MP4). Can shrink to a maximum height (aspect kept, never enlarged), cap the frame rate, trim to a start/end and drop the sound. Needs ffmpeg installed.

输入参数endfpsfile必填mutestartformatoutputqualitymaxHeightoverwriteaudioCodecvideoCodec

video_to_gif

GIF from a video

Turns a clip of a video (at most 60 s) into an animated GIF with ffmpeg on this machine, using a palette made for that clip. Pick the part with start/end; frame rate and width keep the file small. Needs ffmpeg installed.

输入参数endfpsfile必填loopstartwidthoutputoverwrite

video_upscale

AI video upscaling

Enlarges a video (or a clip of it, at most 60 s) 2x or 4x with Real-ESRGAN, frame by frame, on this machine; results up to 4K. Reads anything ffmpeg reads, including OpenCV MPEG-4 (mp4v); writes H.264 MP4 with the sound kept. Every frame goes through the model, so expect about 0.5 s per 480p frame on a recent CPU. The first call installs ONNX Runtime (about 113 MB) and downloads the model (5 MB). Needs ffmpeg installed.

输入参数endfile必填modelscalestartoutputoverwrite

video_frames

Frames from a video

Saves still images from a video with ffmpeg on this machine: one every N seconds, a set number spread over the clip, one at each scene change, or every frame (at most 500). Files are PNG, JPG or WebP named by their time (name-00m02s000.png), in a folder next to the video. Needs ffmpeg installed.

输入参数endfile必填mode必填counteverystartwidthfolderformatoverwritesensitivity

video_remove_background

Remove a video background by its colour

Keys out a plain background (green screen, blue screen, a plain wall) with ffmpeg on this machine. The colour is found from the edges of the first frame, or given as hex. Writes a transparent WebM (VP9 with alpha, for video editors and the web) or an MP4 on a new background colour; the sound is kept. For people or objects in front of an ordinary background, use the AI version on app.ionelul.com/video-background-remover. Needs ffmpeg installed.

输入参数endfile必填colorstartoutputsoftnessoverwritetolerancebackground

audio_denoise

Remove background noise

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.

输入参数file必填amountoutputoverwrite

speech_to_text

Transcribe speech

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.

输入参数file必填taskmodelformatoutputlanguageoverwrite

image_upscale

AI image upscaling

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.

输入参数files必填modelscaleformatqualityoutputDiroverwrite

版本历史

1
  1. v0.12.0最新Oct 22, 2026

评分

已满足适用检查项的 65%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。