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.

S3eidat Tools

NPM · S3EIDAT-TOOLS-MCP

Free, private PDF, image, text, developer, calculator and QR tools. Runs locally; no uploads.

Available components

62 Trust /100

Last scanned (9 hours ago)

Scores higher than 31% 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 Security88
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects image-size 1.2.1, reached via pptxgenjs > image-size. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Dependency health was assessed across the 400 of 513 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability58
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 49482 tokens (~305/item across 162 items; 162 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 Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% 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 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "image_exif_strip" implies "remove" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 163 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

What we tested

Checks we ran (15)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (1)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

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 0
    • CVE-2026-118764 no longer affects this package ▲ security
  • 31 Oct 26 +15
    • CVE-2026-118764 affects this package: high ▼ security
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 47

    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/s3eidat-tools-mcp@0.1.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 →

Vulnerabilities 3 findings
ID CVE Severity Vector Fix available
GHSA-5p2g-fcmc-qvqq CVE-2025-71329 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-w3rx-r6r6-pgpr CVE-2025-71330 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 400 packages
Packages resolved 400
Deprecated 6
Stale 116
No linked repository 1
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

Background: SBOMs and build attestations, explained →

MCP tools · 162 exposed · ~49,341 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
calc_loan ~254

Monthly payment, total interest, total paid and payoff month for a fixed-rate loan or mortgage, with an optional extra monthly payment (shows interest saved and how much sooner it ends) and an amortization schedule by year or by month (or none). Maths is in whole cents like the website; the last payment absorbs the rounding so the balance ends at 0. Rate 0–100 %, term 1 month to 100 years. Web version: https://s3eidat.github.io/loan-calc/

NameTypeReqDescription
amountnumber|stringyesLoan amount (principal), e.g. 250000 or "250,000".
annualRatenumber|stringyesAnnual interest rate in percent, e.g. 6.5. 0 is allowed.
extraMonthlynumber|string–Optional extra principal paid every month.
schedulestring–Amortization table: per calendar year, per month, or omit it.
startMonthstring–First payment month "YYYY-MM". Default: next month.
termnumber|stringyesLoan term, in years (default) or months (see termUnit).
termUnitstring–Unit of "term".

No output schema declared.

No examples provided.

calc_percentage ~306

Every percentage question the website answers: "X% of Y" (percent_of: percent, value), "X is what % of Y" (what_percent: part, whole), percent change from A to B (change: from, to), increase/decrease a value by X% (increase/decrease: value, percent), find the original before a X% increase/decrease (reverse_increase/reverse_decrease: value, percent), and profit margin vs markup (margin_markup: cost, price). Returns the number, a display string and the worked formula. Web version: https://s3eidat.github.io/percentage-calc/

NameTypeReqDescription
costnumber|string–margin_markup: cost price.
fromnumber|string–change: the old value.
modestringyesWhich question to answer (see the description for the fields each one uses).
partnumber|string–what_percent: the part X in "X is what % of Y".
percentnumber|string–The percentage X (percent_of, increase, decrease, reverse_*).
pricenumber|string–margin_markup: selling price.
tonumber|string–change: the new value.
valuenumber|string–The value Y (percent_of: Y in "X% of Y"; increase/decrease: the starting value; reverse_*: the final value).
wholenumber|string–what_percent: the whole Y.

No output schema declared.

No examples provided.

calc_primes ~297

Number theory with big integers, like the website. check: is a number prime (trial division, deterministic Miller-Rabin below 2^64, probabilistic above), its prime factorisation (Pollard rho), number of divisors, sum of divisors σ, Euler φ, the divisor list, previous/next prime and whether it is perfect; the number may be an expression like "2^61-1", "10!+1" or "1000003*1000033" (up to 400 digits). gcd_lcm: GCD and LCM of 2–50 numbers with Euclid's steps. range: list the primes between two numbers (below 10^15, at most 10,000,000 numbers per range). Web version: https://s3eidat.github.io/prime-tools/

NameTypeReqDescription
frominteger–range: start (inclusive).
limitinteger–range: return at most this many primes in the list (the count is always exact).
modestring–What to do.
numberstring|number–check: the number or expression, e.g. "600851475143" or "2^89-1".
numbersarray–gcd_lcm: the whole numbers (2–50, expressions allowed).
tointeger–range: end (inclusive), below 10^15.

No output schema declared.

No examples provided.

calc_roman ~250

Convert numbers to Roman numerals (1–3,999 in standard form; up to 3,999,999 with a vinculum bar, which multiplies by 1,000) and Roman numerals back to numbers with strict validation that explains mistakes (IIII, IC, VV, non-standard forms like IIX…) and the symbol-by-symbol working. Also writes a date in Roman numerals (day/month/year order and separator of your choice, years 1–3999). Web version: https://s3eidat.github.io/roman-numerals/

NameTypeReqDescription
datestring–date: YYYY-MM-DD.
modestringyesto_roman (number → Roman), from_roman (Roman → number) or date.
numbernumber|string–to_roman: a whole number 1–3,999,999.
orderstring–date: order of day, month, year.
romanstring–from_roman: the numeral, e.g. "MCMXCIV" (any case).
separatorstring–date: separator, e.g. " · ", ".", " - ", " / ".

No output schema declared.

No examples provided.

calc_salary ~314

Convert pay between per hour, day, week, every 2 weeks, twice a month, month and year using your hours per week, days per week and weeks per year (defaults 40 / 5 / 52). Optional overtime (hours per week × multiplier, e.g. 1.25, 1.5, 2) and a raise given as a percent or as the new monthly pay. Amounts are rounded to 2 decimals. Web version: https://s3eidat.github.io/salary-calc/

NameTypeReqDescription
amountnumber|stringyesThe pay amount, e.g. 1200.
currencystring–Optional ISO currency code for the text summary (e.g. USD, JOD).
daysPerWeeknumber|string–Working days per week (0–7, default 5).
hoursPerWeeknumber|string–Working hours per week (0–168, default 40).
newMonthlyPaynumber|string–Or: the new monthly pay (gives the raise percent).
overtimeHoursnumber|string–Optional overtime hours per week.
overtimeMultipliernumber|string–Overtime rate multiplier (default 1.5).
periodstring–The period "amount" is paid for.
raisePercentnumber|string–Optional raise in percent (gives the new pay).
weeksPerYearnumber|string–Paid weeks per year (0–53, default 52).

No output schema declared.

No examples provided.

calc_sleep ~257

Sleep in whole cycles so you wake in light sleep: given a wake-up time, the bedtimes for 6, 5, 4 or 3 cycles; given a bedtime (or "now"), the wake-up times. Defaults: 90-minute cycles (70–110) and 15 minutes to fall asleep (0–60). With mode "bed"/"now" it also lists nap alarms (20, 30, 60 min and one full cycle). 12- or 24-hour clock. Web version: https://s3eidat.github.io/sleep-calc/

NameTypeReqDescription
clockstring–12-hour (AM/PM) or 24-hour times in the output.
cycleMinutesinteger–Length of one sleep cycle.
fallAsleepMinutesinteger–Minutes it takes you to fall asleep.
modestring–wake: I must wake at "time"; bed: I go to bed at "time"; now: I go to bed now (server clock).
timestring–"HH:MM" 24 h: the wake-up time (wake) or bedtime (bed). Default 07:00 / 23:00.

No output schema declared.

No examples provided.

calc_split_bill ~327

Split a restaurant bill with tax/service and tip, in whole cents so the shares always add up exactly (left-over cents go to the largest remainders). simple: one bill split evenly between N people (1–100). items: list who had what; each item is split between the people who shared it (nobody listed = everyone), and tax and tip are shared in proportion. Tip can be on the subtotal or on subtotal + tax; each share can be rounded up to a step (e.g. 0.5 or 1). Returns a ready-to-send summary. Web version: https://s3eidat.github.io/split-bill/

NameTypeReqDescription
billnumber|string–simple: the bill subtotal (before tax and tip).
currencystring–Currency, e.g. "JOD" (written after) or "$" (written before).
itemsarray–items: what was ordered.
modestring–Even split, or itemised.
people––simple: how many people (default 2). items: the names, e.g. ["Sara", "Omar", "Lina"].
roundUpTonumber–Round each share up to a multiple of this (e.g. 0.5, 1, 5). 0 = exact.
taxPercentnumber–Tax / service charge percent.
tipOnTaxboolean–Calculate the tip on subtotal + tax.
tipPercentnumber–Tip percent (default 10).

No output schema declared.

No examples provided.

calc_stats ~286

Descriptive statistics for a list of numbers: count, sum, mean, median, mode(s), min, max, range, sample and population variance and SD, standard error, coefficient of variation, quartiles (inclusive = Excel QUARTILE.INC, exclusive = QUARTILE.EXC, or Tukey median-of-halves), IQR, 1.5×IQR outlier fences and outliers, a frequency table (values, or Sturges bins when there are more than 20 distinct values) and z-scores. Paste numbers separated by spaces, commas, semicolons, | or new lines; headers and text are skipped and reported. Commas can be separators, thousands marks or decimal commas. Up to 1,000,000 numbers. Web version: https://s3eidat.github.io/stats-calc/

NameTypeReqDescription
commasstring–In text: commas separate values (sep), are thousands marks (thou: 1,234), or decimal commas (dec: 1,5).
data–yesThe numbers: a text blob (CSV column, list…) or an array of numbers.
frequencyboolean–Include the frequency table.
quartileMethodstring–Quartile method.
zScoresboolean–Include a z-score for each value (first 1,000).

No output schema declared.

No examples provided.

calc_unit_convert ~318

Convert between units in 14 categories, the same table as the website: length, mass, temperature, volume, area (incl. dunam), speed, time, data (kB/MB vs KiB/MiB, bits), pressure, energy, power, angle, fuel economy (L/100km, km/L, mpg US/UK) and cooking (tsp, tbsp, cups, metric spoons). Give value + from + to (symbols like "km", "°F", "GiB" or names like "miles"; ASCII forms like "m2", "um" work), or a query like "5 km to mi". Set all=true for the value in every unit of the category, or list=true to see every category and unit. Web version: https://s3eidat.github.io/unit-convert/

NameTypeReqDescription
allboolean–Also return the value in every unit of the category.
categorystring–Category, to pick the right unit when a symbol exists in two (e.g. "pt" in volume and cooking).
fromstring–Unit to convert from (symbol or name).
listboolean–Just list every category and its units.
querystring–A whole question, e.g. "5 km to mi" or "72 f in c".
tostring–Unit to convert to (symbol or name). Optional when all=true.
valuenumber|string–The number to convert.

No output schema declared.

No examples provided.

calc_zakat ~367

Zakat on wealth: 2.5 % of net zakatable wealth (cash, bank, investments, trade goods, money owed to you, gold and silver, minus debts due now) when it reaches the nisab: the value of 85 g of pure gold (default) or 595 g of silver. Gold weight is converted to pure gold by karat (24/22/21/18). You give today's gold/silver price per gram in your currency: nothing is fetched from the network. An estimate only; consult a scholar. Web version: https://s3eidat.github.io/zakat-calc/

NameTypeReqDescription
banknumber|string–Bank balances.
cashnumber|string–Cash in hand.
currencystring–Currency label for the summary (e.g. JOD).
debtsnumber|string–Debts you must pay now (deducted).
goldGramsnumber|string–Gold you own, in grams.
goldKarat––Karat of that gold (default 21).
goldPricePerGramnumber|string–Price of 1 g of pure (24k) gold. Needed for the gold nisab and to value gold.
investmentsnumber|string–Shares, funds and other investments.
nisabBasisstring–Which metal sets the nisab.
receivablesnumber|string–Money owed to you that you expect back.
silverGramsnumber|string–Silver you own, in grams.
silverPricePerGramnumber|string–Price of 1 g of silver. Needed for the silver nisab and to value silver.
tradeGoodsnumber|string–Value of goods held for sale.

No output schema declared.

No examples provided.

chmod_calc ~223

Convert Unix file permissions between octal (755, 0644, 4755), symbolic (rwxr-xr-x, ls -l style -rwsr-xr-x) and chmod clauses (u=rwx,g=rx,o=; relative ones like g+w or +x apply to "base"). Returns all forms, a plain-English description per owner/group/others, setuid/setgid/sticky meaning, safety warnings, and ready chmod commands. Web version: https://s3eidat.github.io/chmod-calc/

NameTypeReqDescription
basestring–Starting mode (octal) for relative clauses like "g+w". Default 000.
filestring–File name for the example chmod commands (shell-quoted).
modestringyesOctal ("755", "0644", "2775"), symbolic ("rwxr-x---", "drwxrwxrwt") or clauses ("u=rw,go=r", "+x").
recursiveboolean–Add -R to the example commands.

No output schema declared.

No examples provided.

cron_explain ~262

Explain a standard 5-field cron expression (minute hour day-of-month month day-of-week; names like MON/JAN, ranges, lists, steps, ? and the @hourly/@daily/@weekly/@monthly/@yearly/@reboot macros) in plain English and list the next run times in an IANA timezone. Follows Vixie cron: when both day fields are restricted a day matches either one. Quartz 6/7-field and L/W/# syntax are rejected with a clear message; per-field errors are reported. Web version: https://s3eidat.github.io/cron-explain/

NameTypeReqDescription
countinteger–How many upcoming run times to list (0–100). Default 10.
expressionstringyesThe cron expression, e.g. "*/30 9-17 * * 1-5" or "@daily".
fromstring–Start searching after this instant (ISO 8601). Default: now.
hour12boolean–Describe times on a 12-hour clock (9:00 AM) instead of 24-hour (09:00).
timezonestring–IANA timezone the cron daemon runs in. Default: the server's (UTC).

No output schema declared.

No examples provided.

crypto_file_decrypt ~211

Decrypt an .s3enc file made by the S3eidat File Encrypt website or crypto_file_encrypt, verify every chunk, and write the original file back under its stored (sanitised) name. A wrong password, damage, truncation or reordering is reported and nothing is written. Web version: https://s3eidat.github.io/file-encrypt/

NameTypeReqDescription
filestringyesThe .s3enc file: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
outputstring–Where to write the decrypted file: a file path, or a folder ending in "/" (keeps the stored name). Default: the server output folder.
passwordstringyesThe password. Normalised to Unicode NFC first, like the website.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

crypto_file_encrypt ~341

Encrypt any file with a password into the website's .s3enc format: chunked AES-256-GCM, key from PBKDF2-SHA256 (600,000 rounds, random salt), original name/type/size stored encrypted inside, tamper/truncation/reorder-proof. Files made here open at https://s3eidat.github.io/file-encrypt/ and vice versa (crypto_file_decrypt). Whole file is processed in memory (size limit = server --max-mb). Web version: https://s3eidat.github.io/file-encrypt/

NameTypeReqDescription
chunkSizeinteger–Chunk size in bytes (website: 4 MiB).
filestringyesThe file to encrypt: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
iterationsinteger–PBKDF2 rounds (website: 600,000).
mimeTypestring–MIME type to store. Default: guessed from the extension like a browser would ("" if unknown).
namestring–File name to store inside (restored on decrypt). Default: the input file name.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
passwordstringyesThe password. Normalised to Unicode NFC first, like the website.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

crypto_stego_hide ~312

Hide a text message inside an image (LSB steganography in R, G, B; the picture looks the same) and save it as a lossless PNG, optionally encrypted with a password (AES-256-GCM, PBKDF2-SHA256 600,000). Same bit layout as the website, so the PNG reveals at https://s3eidat.github.io/stego-image/ or with crypto_stego_reveal. Capacity ≈ width×height×3/8 − 10 bytes (−44 more when encrypted). Transparency is filled with white. The result is read back and checked before returning. Sending it through apps that recompress images (JPEG, chat apps) destroys the message. Web version: https://s3eidat.github.io/stego-image/

NameTypeReqDescription
imagestringyesThe cover image (PNG, JPEG, WebP…): a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
messagestringyesThe text to hide (UTF-8).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
passwordstring–Optional password to encrypt the message.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

crypto_stego_reveal ~138

Read a message hidden in a PNG by the S3eidat Stego Image website or crypto_stego_hide (decrypting it if a password was used). Reports when there is no message, e.g. because the image was recompressed (JPEG), resized or edited. Web version: https://s3eidat.github.io/stego-image/

NameTypeReqDescription
imagestringyesThe image with a hidden message (PNG): a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
passwordstring–Password, if the message is encrypted.

No output schema declared.

No examples provided.

crypto_text_decrypt ~157

Decrypt an "S3E1.…" message made by the S3eidat Text Encrypt website or crypto_text_encrypt, with its password. Verifies integrity: a wrong password or any change to the text is reported, never garbage output. Accepts base64url and line breaks. Web version: https://s3eidat.github.io/text-encrypt/

NameTypeReqDescription
encryptedstring–The encrypted text, starting with S3E1.
outputstring–Optional: also save the decrypted message to this file.
passwordstringyesThe password. Normalised to Unicode NFC first, like the website.
pathstring–Or: a file containing it (e.g. encrypted.txt).

No output schema declared.

No examples provided.

crypto_text_encrypt ~208

Encrypt a message with a password: AES-256-GCM, key from PBKDF2-SHA256 (600,000 rounds, random 16-byte salt, 12-byte IV), output as one "S3E1.…" base64 line. Exactly the website's format, so the result can be decrypted at https://s3eidat.github.io/text-encrypt/ or with crypto_text_decrypt. Each run gives a different output. Web version: https://s3eidat.github.io/text-encrypt/

NameTypeReqDescription
iterationsinteger–PBKDF2 rounds (website: 600,000).
outputstring–Optional: also save the encrypted line to this file (website "Save" gives encrypted.txt).
passwordstringyesThe password. Normalised to Unicode NFC first, like the website.
pathstring–Or: a UTF-8 text file to encrypt.
textstring–The message to encrypt.

No output schema declared.

No examples provided.

css_clamp ~207

Build a fluid typography/spacing value: CSS clamp() that grows linearly from a size at a small viewport to a size at a large viewport (sizes and viewports in px), expressed in rem or px. Also returns the computed size at sample viewport widths. Web version: https://s3eidat.github.io/css-units/

NameTypeReqDescription
maxSizenumber–Size in px at the large viewport. Default 32.
maxViewportnumber–Large viewport width in px. Default 1280.
minSizenumber–Size in px at the small viewport. Default 16.
minViewportnumber–Small viewport width in px. Default 320.
rootFontSizenumber–Root (html) font size in px, for rem. Default 16.
sampleViewportsarray–Viewport widths (px) to compute the resulting size at.
unitstring–Output unit. Default rem.

No output schema declared.

No examples provided.

css_format ~239

Beautify CSS (one declaration per line, one selector per line, blank line between top-level rules, nested @media blocks) or minify it. Strings, url(...) and escapes are kept intact; calc() spacing is preserved. Optional comment removal (/*! … */ kept). Give "text" or a file "path". Web version: https://s3eidat.github.io/html-css-format/

NameTypeReqDescription
indent––Indentation: 2, 4, "tab" (or any number of spaces 0-8).
modestring–"beautify" (default) or "minify".
outputstring–Optional: also write the result to this file path (or folder ending in "/"). The result text is then left out of the reply. Results over 1,000,000 characters are always written to a file.
pathstring–Or: a path to a CSS file (UTF-8; use this for big inputs).
removeCommentsboolean–Drop comments (/*! … */ license comments are kept).
textstring–The CSS as inline text.

No output schema declared.

No examples provided.

css_units ~248

Convert a CSS length between px, rem, em, %, pt, pc, in, cm, mm, vw, vh, vmin and vmax, using a root font size, parent font size and viewport size (defaults 16px / 16px / 1440×900). Uses the CSS definition of 96px per inch. Returns every unit, rounded to 4 decimals by default. Web version: https://s3eidat.github.io/css-units/

NameTypeReqDescription
decimalsinteger–Decimal places to round to. Default 4.
parentFontSizenumber–Parent element font size in px, for em and %. Default 16.
rootFontSizenumber–Root (html) font size in px, for rem. Default 16.
unitstring–Unit of "value". Default px.
valuenumberyesThe length to convert, e.g. 24.
viewportHeightnumber–Viewport height in px, for vh/vmin/vmax. Default 900.
viewportWidthnumber–Viewport width in px, for vw/vmin/vmax. Default 1440.

No output schema declared.

No examples provided.

csv_to_json ~312

Convert CSV/TSV to JSON with an RFC 4180 parser (quoted fields, "" escapes, line breaks inside quotes, CR/LF/CRLF, BOM). Detects the delimiter (comma, semicolon, tab, pipe), uses the first row as headers (blank → column_N, duplicates → name_2), and can type values (numbers, true/false, null; long digit strings like IDs stay strings). Output: array of objects or array of arrays, pretty-printed. Give "text" or a file "path". Web version: https://s3eidat.github.io/csv-json/

NameTypeReqDescription
delimiterstring–Delimiter: "auto" (detect), ",", ";", "tab" or "|".
headerboolean–First row is a header (default true).
outputstring–Optional: also write the result to this file path (or folder ending in "/"). The result text is then left out of the reply. Results over 1,000,000 characters are always written to a file.
pathstring–Or: a path to a CSV/TSV file (UTF-8; use this for big inputs).
shapestring–"objects" (one object per row) or "arrays" (rows as arrays).
textstring–The CSV as inline text.
typesboolean–Turn numbers, true/false and empty/null into JSON types (default true).

No output schema declared.

No examples provided.

curl_to_code ~330

Convert a curl command (bash/zsh quoting incl. $'…', line continuations, "Copy as cURL" from browsers) into code for JavaScript fetch, axios, Python requests, PHP cURL, Go net/http or Node.js http/https: every target the website supports. Understands -X, -H, -d/--data-raw/--data-binary/--data-urlencode, --json, -F forms and files, -u, -b, -A, -e, -G, -I, -k, -L, -m, --connect-timeout, -x, -T, --compressed, --oauth2-bearer. Also returns the parsed request (secrets masked unless revealSecrets) and notes on what could not be converted. Only parses text; never sends the request. Web version: https://s3eidat.github.io/curl-convert/

NameTypeReqDescription
commandstringyesThe curl command, e.g. "curl -X POST https://api.example.com -H 'Content-Type: application/json' -d '{"a":1}'".
languagestring–Target: fetch (browser/Node fetch), axios, python (requests), php (cURL), go (net/http), node (http/https), or "all".
outputstring–Optional: write the code to this file (single language only).
revealSecretsboolean–Show Authorization/Cookie/API-key header values and the basic-auth password in the parsed summary (the code always contains them).

No output schema declared.

No examples provided.

doc_attendance_sheet ~493

Make a printable attendance / sign-in sheet PDF: names down the side, one column per date for a month (skipping chosen weekdays, e.g. Fri+Sat or Sat+Sun), a run of N sessions from a start date, or N blank columns; tick boxes or wide signature cells; row numbers, a total column, extra empty rows, title, group and teacher. Same page maths as the website: rows that don't fit continue on more pages, and too many date columns are split across pages with the same names. Also returns a blank register CSV. English labels, Latin text only for now. Web version: https://s3eidat.github.io/attendance-sheet/

NameTypeReqDescription
cellstring–box = tick boxes, sign = wide cells for signatures.
countinteger–sessions/blank: number of columns.
extraRowsinteger–Empty rows after the names.
groupstring–Class / group, shown under the title.
modestring–month = every day of a month; sessions = N dates from a start date; blank = N unnamed columns.
monthstring–month mode: YYYY-MM (default this month).
names–yesNames, one per line (leading "1." numbering and anything after a tab are removed), or a list.
numbersboolean–Row number column.
orientationstring––
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
paperstring––
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
rowHeightnumber–Row height in mm (default 8, or 13 for signature cells).
skiparray–Weekdays to skip, 0 = Sunday … 6 = Saturday (default [0, 6] = weekends Sat+Sun; use [5, 6] for Fri+Sat).
startstring–sessions mode: first date YYYY-MM-DD (default today).
teacherstring–Teacher, shown under the title.
titlestring–Title (default "Attendance").
totalboolean–Total column.

No output schema declared.

No examples provided.

doc_business_cards ~512

Design business cards and get a print-ready PDF sheet: cards centred on A4 or Letter with crop marks (10 per sheet for 85 × 55 mm EU or 3.5 × 2 in US cards), plus a back side page mirrored for long-edge duplex printing. Four front templates (classic, band, centered, minimal), backs with your logo, a "scan to save my contact" vCard QR code, or blank; six colour themes or your own accent/paper/ink colours; optional logo and a vCard QR on the front. Also returns the vCard text. Print at 100% / actual size. Latin text only for now (the website also does an Arabic side). Web version: https://s3eidat.github.io/business-card/

NameTypeReqDescription
accentstring–Override the accent colour.
addressstring––
backstring–Back side: logo/company on the accent colour, a contact QR code, or none.
companystring–Company.
emailstring––
gapnumber–Gap between cards in mm (0 = shared cut lines).
inkstring–Override the text colour.
logostring–Optional logo image: a PNG/JPEG/WebP/GIF/SVG file path or base64. Drawn as-is (keep it small).
namestringyesYour name.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
paperColorstring–Override the card background colour.
phonestring––
qrFrontboolean–Also put the contact QR code on the front.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
sheetstring–Paper for the print sheet.
sidesstring–Which pages to include (both = front page then mirrored back page).
sizestring–eu = 85 × 55 mm, us = 3.5 × 2 in.
taglinestring–Short line for the back.
templatestring–Front layout.
themestring–Colour preset (navy = navy & gold).
titlestring–Job title.
websitestring––

No output schema declared.

No examples provided.

doc_calendar ~397

Make a printable calendar PDF: a month grid (one page per month, several months in a row if you like) or a whole year on one page, A4 or Letter, landscape or portrait. Week starts on Saturday (default, like the website), Sunday or Monday; optional Hijri (Umm al-Qura) dates; events (one-off or yearly, 7 colours) shown in the day cells, or as coloured days plus a legend in the year view; optional title. English names by default; other Latin-script locales (fr, de, es, tr…) use their own month/day names. Web version: https://s3eidat.github.io/calendar-maker/

NameTypeReqDescription
eventsarray–Events to show.
hijriboolean–Show Hijri (Umm al-Qura) dates.
localestring–Language for month/day names (default en). Latin-script locales only.
monthinteger–Month 1-12 (month view; default: this month).
monthsinteger–Month view: how many consecutive months (one page each).
orientationstring––
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
paperstring––
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
titlestring–Optional title above the month name, e.g. "Family calendar".
viewstring–month = month grid pages, year = 12 months on one page.
weekStart––First day of the week: 6 = Saturday (default), 0 = Sunday, 1 = Monday.
yearinteger–Year (default: this year).

No output schema declared.

No examples provided.

doc_invoice ~445

Make a clean A4 invoice PDF: your business (logo, name, address, email, phone, tax ID), client, invoice number and dates, line items with quantity, unit price, per-line discount % and tax %, subtotal, discount, tax per rate and total, notes, payment terms, and an optional PAID stamp. Same maths as the website: every line is rounded to the currency's minor unit (2 decimals, 3 for JOD/KWD/BHD/OMR/TND…, 0 for JPY…) with half-up rounding; amounts formatted en-US style ($1,234.50, JOD 10.124). Long item lists continue on more pages. Returns the PDF path and the computed totals. Latin text only for now. Web version: https://s3eidat.github.io/invoice-maker/

NameTypeReqDescription
accentstring–Accent colour (hex).
currencystring–Currency code.
datestring–Issue date, YYYY-MM-DD (default today).
duestring–Due date, YYYY-MM-DD (optional).
fromobject–Your business: name, email, phone, address, taxId.
itemsarrayyesLine items: desc, qty, price, disc %, tax %.
logostring–Optional logo image: a PNG/JPEG/WebP/GIF/SVG file path or base64. Drawn as-is (keep it small).
notesstring–Notes shown at the bottom.
numberstring–Invoice number.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
paidboolean–Mark as paid (shows "Amount paid" and a PAID stamp).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
termsstring–Payment terms shown at the bottom.
toobject–The client (bill to): name, email, address.

No output schema declared.

No examples provided.

doc_labels ~728

Print address or product labels on standard sticker sheets as PDF: A4 21/24/14/40/65-up (L7160, L7159, L7163, L7654, L7651 sizes) or Letter 30/10/80-up (5160, 5163, 5167 sizes), or custom geometry in mm. Text modes: "list" (one label per block, blank line between labels), "csv" (rows filled into a template like "{Name}\n{Street}\n{City} {Postcode}", header row or {1},{2}…), or "same" (one text × count). Copies per label, start at a later position to reuse a part-used sheet, alignment, font, size, bold first line, border, shrink-to-fit and printer offset nudges. Print at 100% / actual size. Up to 3000 labels. Latin text only for now. Web version: https://s3eidat.github.io/label-maker/

NameTypeReqDescription
alignstring––
boldboolean–Bold first line (e.g. the name).
borderboolean–Draw a thin rounded border around each label.
copiesinteger–list/csv: copies of each label.
countinteger–same: how many labels.
customobject–preset "custom": paper, cols, rows, w, h, top, left, gx, gy (mm).
fitboolean–Shrink text (in 0.5 pt steps, min 5 pt) until it fits the label.
fontstring––
fontSizenumber–Font size in pt (default 11).
headerboolean–csv: the first row holds column names.
modestring–list = blocks separated by a blank line; csv = rows + template; same = one text repeated.
offsetXnumber–Printer nudge right (mm, negative = left).
offsetYnumber–Printer nudge down (mm, negative = up).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
paddingnumber–Inner padding in mm.
pathstring–Or: a text/CSV file path to read it from.
presetstring–Sheet: a4-21 (63.5×38.1), a4-24 (63.5×33.9), a4-14 (99.1×38.1), a4-40 (45.7×25.4), a4-65 (38.1×21.2), lt-30 (2⅝×1 in), lt-10 (4×2 in), lt-80 (1¾×½ in), or custom.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
startAtinteger–Start at this label position on the first sheet (skips used labels).
templatestring–csv: template with {Column name} or {1}-style placeholders (empty = all columns, one per line).
textstring–The labels text (list blocks, CSV/TSV, or the single text).
valignstring––

No output schema declared.

No examples provided.

doc_receipt ~415

Make a simple sales receipt as PDF: an 80 mm thermal-roll receipt (page height fits the content, monospace) or an A5 page. Shop header (name, address, phone, tax number), receipt number with prefix, date/time, customer, items (name × qty × price), discount (% or fixed amount), tax % after discount, total, payment method, amount paid and change, note and footer. Same maths as the website: amounts rounded half-up to 0, 2 or 3 decimals. Also returns the totals and a 32-column plain-text version. English labels, Latin text only for now. Web version: https://s3eidat.github.io/receipt-maker/

NameTypeReqDescription
customerstring–Customer name or table (optional).
discnumber–Discount: a percentage, or an amount when discType is "amt".
discTypestring–pct = percent of subtotal (default), amt = fixed amount.
formatstring–thermal = 80 mm roll (default), a5 = A5 page.
itemsarrayyesItems: name, qty, price.
nointeger–Receipt number.
notestring–Note line above the footer.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
paidnumber–Amount the customer paid (shows change).
paystring–Payment method.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
shopobject–Shop details: name, address, phone, taxId, currency, decimals, prefix, footer.
taxnumber–Tax rate % applied after the discount.
whenstring–Date and time, YYYY-MM-DDTHH:MM (default now).

No output schema declared.

No examples provided.

doc_resume ~311

Turn structured CV fields into a clean A4 resume PDF: contact header, summary, experience, education, skills, projects and languages, in any section order, with three templates like the website: "classic" (centred header and accent rule), "modern" (coloured sidebar with contact, skills and languages) and "compact" (denser, headings in a left column). Description lines starting with "-", "•", "*" or "–" become bullet points; skills are comma-separated. Aims for one page; longer CVs continue on a second page. English headings, Latin text only for now. Web version: https://s3eidat.github.io/resume-builder/

NameTypeReqDescription
accentstring–Accent colour (hex).
contactobject––
educationarray––
experiencearray––
languagesarray––
orderarray–Section order; missing sections are appended in the default order.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
projectsarray––
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
skills––Skills: comma-separated text or a list.
summarystring–Two or three lines about you.
templatestring––

No output schema declared.

No examples provided.

gitignore_generate ~333

Build a .gitignore by combining the website's templates for languages, frameworks, mobile, game engines, tools, OSes and editors (node, python, java, android, ios, flutter, reactnative, unity, unreal, go, rust, cpp, dotnet, php, wordpress, rails, django, nextjs, vite, docker, terraform, macos, windows, linux, vscode, jetbrains, vim). Templates can be named by id, name or keyword (e.g. "javascript" → node). Duplicate patterns are removed, optional "### Name ###" section headers, plus your own custom lines at the end. Returns the text, or writes it to "output" (e.g. "./.gitignore"). Set "list" to see all templates. Web version: https://s3eidat.github.io/gitignore-gen/

NameTypeReqDescription
customstring–Extra lines to append in a "Custom" section.
dedupeboolean–Drop patterns that already appeared in an earlier section. Default true.
headersboolean–Add a generated-by header, section headers and template comments. Default true.
listboolean–Just list the available templates (id, name, group, keywords).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
templatesarray–Templates to combine, in order, e.g. ["node", "nextjs", "vscode", "macos"].

No output schema declared.

No examples provided.

hash_compute ~175

Compute MD5, SHA-1, SHA-256 and SHA-512 of text or a file (path or base64), optionally an HMAC with a key, and check against an expected checksum (hex in any case/spacing, "SHA256 (file) = …" lines, or base64). Web version: https://s3eidat.github.io/hash-lab/

NameTypeReqDescription
expectedstring–A checksum to compare against; the result says which algorithm matched.
filestring–Or: a file to hash: local path or base64.
formatstring–Output encoding.
hmacAlgorithmstring––
hmacKeystring–If set, also compute HMAC with this key.
textstring–Text to hash (UTF-8).

No output schema declared.

No examples provided.

html_format ~271

Beautify (indent block elements, keep inline runs on one line) or minify HTML with a forgiving tokenizer: implied end tags (<p>, <li>, <td>…), void elements, and <script>, <style>, <pre>, <textarea> contents kept byte-for-byte. Whitespace between attributes is normalised; attribute values are never changed. Optional comment removal (IE conditional comments kept). Text only: nothing is rendered or run. Give "text" or a file "path". Web version: https://s3eidat.github.io/html-css-format/

NameTypeReqDescription
indent––Indentation: 2, 4, "tab" (or any number of spaces 0-8).
modestring–"beautify" (default) or "minify".
outputstring–Optional: also write the result to this file path (or folder ending in "/"). The result text is then left out of the reply. Results over 1,000,000 characters are always written to a file.
pathstring–Or: a path to a HTML file (UTF-8; use this for big inputs).
removeCommentsboolean–Drop comments (IE conditional comments are kept).
textstring–The HTML as inline text.

No output schema declared.

No examples provided.

http_status ~225

Look up HTTP status codes: by exact code (e.g. 418, also non-standard ones like 499 or 524), by code prefix ("50"), or by words ("too many", "redirect post"), optionally limited to a class (1xx–5xx). Each result has the name, what it means, when to use it, common causes and the defining spec. Non-standard nginx/Cloudflare codes are only searched when "includeNonStandard" is set. Web version: https://s3eidat.github.io/http-status/

NameTypeReqDescription
classstring–Only this class: 1 informational, 2 success, 3 redirection, 4 client error, 5 server error.
includeNonStandardboolean–Also search non-standard codes (nginx 499, Cloudflare 52x…).
limitinteger–Max results to return. Default 20.
querystring–A code ("404"), code prefix ("5", "50") or search words. Empty = all codes (filtered by class).

No output schema declared.

No examples provided.

id_generate ~276

Generate 1–1000 unique IDs with a cryptographic RNG: UUID v4 (random), UUID v7 (time-ordered, RFC 9562, strictly increasing within a batch), ULID (26 Crockford Base32 chars, monotonic) or NanoID (custom length 2–128 and alphabet: URL-safe default, alphanumeric, hex, digits, no look-alikes, or your own). Options: uppercase, no dashes. Web version: https://s3eidat.github.io/uuid-forge/

NameTypeReqDescription
alphabetstring–NanoID alphabet: a preset ("A-Za-z0-9_-", "A-Za-z0-9", "0-9a-f", "0-9", "nolook") or your own characters (2–256 distinct; duplicates ignored).
countinteger–How many IDs (1–1000).
kindstring–Which ID type.
lengthinteger–NanoID length (2–128). 21 URL-safe chars ≈ UUID v4 collision safety.
noDashesboolean–UUIDs only: drop the dashes (32 hex chars).
uppercaseboolean–Upper-case output (UUID hex digits, ULID letters). Default false = lower case, like the website.

No output schema declared.

No examples provided.

id_inspect ~97

Check whether a string is a valid UUID (any version; braces, urn:uuid: and missing dashes accepted) or ULID, and report its version, variant and canonical form. For UUID v1, v6, v7 and ULID also returns the embedded creation time. Web version: https://s3eidat.github.io/uuid-forge/

NameTypeReqDescription
idstringyesThe UUID or ULID to inspect.

No output schema declared.

No examples provided.

image_ascii_art ~350

Turn an image into ASCII art: each character cell takes the average brightness of its area (cells are twice as tall as wide) and maps it onto a character ramp: standard " .:-=+*#%@", detailed (70 characters), blocks " ░▒▓█", simple, binary, or your own. Contrast, brightness and invert (for light text on dark backgrounds). Returns the text; format "png" also renders it to an image (optionally in the image's colours). Transparent areas count as white paper. Web version: https://s3eidat.github.io/ascii-art/

NameTypeReqDescription
brightnessnumber–-100 … 100. Default 0.
colorboolean–PNG only: colour each character with the image colour.
columnsinteger–Characters per line. Default 100.
contrastnumber–-100 … 100. Default 0.
customRampstring–Characters for ramp "custom", from no ink to most ink (at least 2).
formatstring–text (default) or png (also writes <name>-ascii.png).
imagestringyesThe image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
invertboolean–For light text on a dark background. Default false.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
rampstring–Character set, light → dark. Default standard.

No output schema declared.

No examples provided.

image_ascii_banner ~257

Big banner letters from text, using the website's own bitmap fonts: block (█ 5×7), char (any fill character, e.g. #), shadow (█ with ░ shade), compact (half-block 5×7), small (█ 3×5), tiny (half-block 3×5). Letters A-Z, digits and common punctuation (unknown characters show as "?"); one banner per input line. Returns the text; format "png" also renders it to banner.png. Web version: https://s3eidat.github.io/ascii-art/

NameTypeReqDescription
fillstring–Fill character(s) for style "char". Default "#".
formatstring–text (default) or png (also writes banner.png).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
stylestring–Letter style. Default block.
textstringyesText to render (case-insensitive). New lines make separate banners.
themestring–PNG colours: dark (teal on near-black, default) or light.

No output schema declared.

No examples provided.

image_compress ~383

Make an image file smaller: re-encode at a quality (default 80) and optionally cap the longest side (maxSide), as JPEG, WebP, AVIF or PNG ("keep" = same format; GIF/BMP/TIFF become PNG). Or give targetBytes to find the highest quality that fits that size. With keepSmaller (default on) the original is kept when re-encoding would not make it smaller. Reports before/after sizes and % saved. Transparent areas become white in JPEG. Metadata (EXIF, GPS) is not copied. PNG is lossless (quality ignored). Web version: https://s3eidat.github.io/image-squeeze/

NameTypeReqDescription
formatstring–Output format. Default keep (same as the input).
imagestringyesThe image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
keepSmallerboolean–Keep the original bytes when the result would be larger (same format and size only). Default true.
maxSideinteger–Scale down so the longest side is at most this many pixels (e.g. 1920).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
qualityinteger–Quality 1-100 for JPEG / WebP / AVIF. Default 80 (website default).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
targetBytesinteger–Aim for a file of at most this many bytes: searches the highest quality that fits (lossy formats only; overrides quality).

No output schema declared.

No examples provided.

image_convert ~338

Convert an image to PNG, JPEG, WebP, AVIF, GIF or TIFF. Reads JPEG, PNG, WebP, AVIF/HEIF, GIF (first frame), TIFF, SVG, BMP and ICO. Transparent areas are filled with `background` when writing JPEG (or always with `flatten`). EXIF rotation is applied. SVGs are rasterised at their own size (width/height or viewBox; 1024×1024 if neither), scripts never run. Images larger than 16384 px a side or 100 MP are scaled down to fit. Web version: https://s3eidat.github.io/image-convert/

NameTypeReqDescription
backgroundstring–Colour used for transparent areas when writing JPEG or when flatten is on. Default #ffffff.
flattenboolean–Fill transparency with the background for every format, not only JPEG.
formatstring–Output format. Default png (as on the website).
imagestringyesThe image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
qualityinteger–Quality 1-100 for JPEG / WebP / AVIF (ignored for PNG). Default 92, same as the website.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

image_crop ~433

Crop an image to a pixel box (x, y, width, height) or to an aspect ratio (1:1, 4:5, 3:2, 16:9, 9:16, "W:H" or a number), taking the largest centred region (or aligned to an edge with `position`). Boxes are kept inside the image. Output JPEG/PNG/WebP/AVIF, name <name>-<W>x<H>.<ext>. Web version: https://s3eidat.github.io/image-resize/

NameTypeReqDescription
formatstring–Output format. "keep" = same as the input when it is JPEG/PNG/WebP (else PNG). Default keep.
heightinteger–Height of the crop box (pixels).
imagestringyesThe image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
positionstring–Where the ratio crop sits. Default center (the website default).
qualityinteger–Quality 1-100 for JPEG / WebP / AVIF (ignored for PNG). Default 90, same as the website.
ratiostring|number–Aspect ratio as "W:H" (e.g. "1:1", "4:5", "3:2", "16:9", "9:16"), a number (width/height), "orig" or "free".
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
widthinteger–Width of the crop box (pixels).
xinteger–Left edge of the crop box (pixels). Use with y, width, height.
yinteger–Top edge of the crop box (pixels).

No output schema declared.

No examples provided.

image_exif_read ~157

Show the hidden metadata in a photo: camera make/model, lens, date taken, exposure, ISO, software, author/copyright, serial numbers, comments, PNG text chunks, and GPS coordinates (where the photo was taken). Lists every metadata block (EXIF, XMP, ICC, IPTC, embedded previews) with its size and flags privacy-sensitive fields. JPEG and PNG fully; WebP/AVIF/HEIC/TIFF EXIF via sharp. Web version: https://s3eidat.github.io/exif-cleaner/

NameTypeReqDescription
imagestringyesThe photo: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).

No output schema declared.

No examples provided.

image_exif_strip ~348

Remove EXIF, GPS location, XMP, IPTC, comments, PNG text chunks and embedded previews from a photo before sharing it. JPEG and PNG are cleaned losslessly (image data copied byte for byte, like the website); by default the rotation is kept as a tiny orientation-only EXIF and the ICC colour profile is kept. applyOrientation re-encodes JPEGs with the rotation baked into the pixels. WebP/AVIF/HEIC/TIFF are re-encoded without metadata. Output name <name>-clean.<ext>. Web version: https://s3eidat.github.io/exif-cleaner/

NameTypeReqDescription
applyOrientationboolean–Instead of keeping the Orientation tag, rotate the pixels (re-encodes JPEG at `quality`; PNG is unaffected). Default false.
imagestringyesThe photo: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
keepIccboolean–Keep the ICC colour profile (no personal data; keeps colours right). Default true.
keepOrientationboolean–Keep only the Orientation tag so the photo still shows the right way up. Default true.
outputstring–Where to write the result: a file path, or a folder ending in "/". Default: the server output folder (a temp folder unless --out-dir is set).
qualityinteger–JPEG/WebP/AVIF quality when re-encoding is needed. Default 92.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

Install

How do I install the S3eidat Tools MCP server?

S3eidat Tools runs locally as an npm package, launched with npx -y s3eidat-tools-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 · s3eidat-tools-mcp

# add to Claude Code
claude mcp add s3eidat-s3eidat-tools-mcp -- npx -y s3eidat-tools-mcp
Common questions

What is the S3eidat Tools MCP server?

S3eidat Tools is an MCP server listed in the public MCP registry as io.github.s3eidat/s3eidat-tools-mcp. Free, private PDF, image, text, developer, calculator and QR tools. Runs locally; no uploads. This page covers its npm package (s3eidat-tools-mcp).

Is the S3eidat Tools MCP server safe to use?

S3eidat Tools scores 62 out of 100 on VerifyMCP. We recorded 3 known advisories against 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 S3eidat Tools MCP server expose?

S3eidat Tools exposes 162 tools: ai_chart, ai_chunk_text, ai_create_pptx, ai_create_xlsx, ai_csv_profile, and 157 more. Their descriptions and schemas cost roughly 49,341 tokens of context every time the server is loaded.

Is the S3eidat Tools MCP server still maintained?

S3eidat 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 S3eidat Tools MCP server under?

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

What did VerifyMCP test on the S3eidat Tools MCP server?

VerifyMCP ran 15 checks on S3eidat Tools, covering Malware scan, Known CVEs, Install scripts, Dependency health and 11 more. One item could not be completed, a gap on our side rather than a finding about S3eidat Tools: Stability. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.