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 (10 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
image_favicon_set ~372

Make a complete favicon set from a letter/emoji/short text or from an image: favicon.ico (16, 32, 48 px), favicon-16x16.png, favicon-32x32.png, apple-touch-icon.png (180, square, solid), android-chrome-192x192.png and -512x512.png, site.webmanifest and head-snippet.html with the <link> tags. Rounded square with background colour (or transparent), corner radius and padding in %. Writes everything into one folder. Web version: https://s3eidat.github.io/favicon-forge/

NameTypeReqDescription
backgroundstring–Background colour. Default #0e7c86.
colorstring–Text colour. Default #ffffff.
fitstring–How an image fills the padded square. Default contain.
imagestring–Use this image (logo) instead of text: a local path or base64. Square, 512 px+ works best.
namestring–App name for site.webmanifest. Default "My Website".
outputstring–Folder to write the files into. Default: a new "favicons" folder in the output folder.
paddingnumber–Padding around the text/image in %. Default 14.
radiusnumber–Corner radius in % of the size (50 = circle). Default 22.
shortNamestring–Short name for site.webmanifest. Default "Site".
textstring–Letter(s) or emoji drawn on the icon (when no image is given). Default "S".
transparentboolean–Transparent background (the Apple icon still gets white). Default false.
weightstring–Font weight for text. Default 900.

No output schema declared.

No examples provided.

image_from_base64 ~194

Decode Base64 back into a file: accepts a data URI, a CSS url("data:…") rule, an <img src="data:…"> tag, URL-encoded SVG data URIs, or raw Base64 (standard or URL-safe, line breaks allowed). Detects the real type from the bytes, warns when it differs from the declared one, and writes decoded.<ext>. Give the text inline or as a path to a text file. Web version: https://s3eidat.github.io/image-to-base64/

NameTypeReqDescription
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).
pathstring–Or: a text file containing it.
textstring–The data URI / CSS / <img> tag / raw Base64.

No output schema declared.

No examples provided.

image_palette ~249

Extract the main colours of an image with their share of the picture: k-means (default, deterministic) or median cut, 1-16 colours, sorted by share. Transparent pixels are ignored. Returns hex + rgb + % per colour, CSS custom properties (:root { --color-1 … }) or JSON, and optionally writes the website's swatch strip as palette.png. Same algorithm and sampling as the website, so the colours match. Web version: https://s3eidat.github.io/palette-from-image/

NameTypeReqDescription
countinteger–Number of colours. Default 6.
formatstring–Export text format. Default css.
imagestringyesThe image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
methodstring–kmeans (default) or median (median cut).
outputstring–Where to write palette.png (file path or folder ending in "/"). Implies swatchPng.
swatchPngboolean–Also write palette.png (160×200 swatch per colour with its hex code).

No output schema declared.

No examples provided.

image_placeholder ~586

Make a placeholder image of any size (up to 8000 px a side): solid background with centred text (default "W × H", "\n" for line breaks), auto-fitted font size or a fixed one, PNG / JPEG / WebP / SVG. Size presets for web, social media, IAB ads and devices. Optionally returns a data URI / <img> tag for inlining. Text uses Inter when installed, else a system sans-serif. Web version: https://s3eidat.github.io/placeholder-image/

NameTypeReqDescription
backgroundstring–Background colour (#rgb or #rrggbb). Default #1f2937.
colorstring–Text colour (#rgb or #rrggbb). Default #9ca3af.
dataUriboolean–Also return the image as a data URI and an <img> tag (for small images).
fontSizenumber–Font size in px; 0 = auto-fit (default).
fontWeightstring–Font weight. Default 600.
formatstring–Output format. Default png.
heightinteger–Height in pixels. Default 630.
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).
presetstring–Size preset (overrides width/height): open-graph-link-preview 1200×630, hero-16-9-full-hd 1920×1080, hd-16-9 1280×720, blog-image-4-3 800×600, thumbnail-3-2 600×400, avatar 256×256, instagram-square…
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
textstring–Text to show. Empty = "W × H". Use "\n" (backslash n) or a real newline for a line break.
widthinteger–Width in pixels. Default 1200.

No output schema declared.

No examples provided.

image_resize ~590

Resize an image by pixels or percent, keeping the aspect ratio. Give width or height (the other side follows), or both: fit "cover" (default, as on the website) centre-crops to that ratio first so nothing is stretched, "contain" fits inside the box, "fill" stretches. Optional crop ratio (1:1, 4:5, 3:2, 16:9, 9:16, orig) or crop box before resizing, social-media presets, output JPEG/PNG/WebP/AVIF. Up to 16384 px a side. Output name: <name>-<W>x<H>.<ext>. Web version: https://s3eidat.github.io/image-resize/

NameTypeReqDescription
cropobject–Crop box (x, y, width, height in pixels) applied before resizing; overrides ratio.
fitstring–When both width and height are set: cover (crop to fill, default), contain (fit inside), fill (stretch).
formatstring–Output format. "keep" = same as the input when it is JPEG/PNG/WebP (else PNG). Default keep.
heightinteger–Target height in 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).
percentnumber–Scale by percent instead (e.g. 50 halves both sides, 200 doubles).
presetstring–Exact output size preset: instagram-post 1080×1080, instagram-portrait 1080×1350, story 1080×1920, youtube-thumbnail 1280×720, x-header 1500×500, facebook-cover 851×315, linkedin-banner 1584×396, ful…
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–Target width in pixels.

No output schema declared.

No examples provided.

image_rotate ~387

Rotate an image clockwise by 90, 180, 270 or any angle (the canvas grows to fit; new corners get `background`), and/or flip it horizontally (mirror) or vertically. Flips apply after the rotation, as seen on screen. EXIF orientation is applied first (autoOrient, default on), so with angle 0 this simply "fixes" sideways phone photos. Output JPEG/PNG/WebP/AVIF ("keep" = same as input), name <name>-rotated.<ext>. Web version: https://s3eidat.github.io/photo-filters/

NameTypeReqDescription
anglenumber–Clockwise rotation in degrees (negative = counter-clockwise). Default 90.
autoOrientboolean–Apply the EXIF Orientation tag first (what browsers show). Default true.
backgroundstring–Fill for the corners uncovered by a non-right-angle rotation. Default transparent (white in JPEG).
flipHorizontalboolean–Mirror left-right (after rotating).
flipVerticalboolean–Mirror top-bottom (after rotating).
formatstring–Output format. Default keep (JPEG/PNG/WebP stay, others become PNG).
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_svg_to_png ~314

Rasterise an SVG to a crisp PNG: scale (1×, 2×, 3×, 4×… default 2×), a target width or height (aspect kept), or an exact size (stretched). Units (px, pt, mm, cm, in) and viewBox-only SVGs are understood; transparent background or a solid colour. Scripts, event handlers and external references are removed first. Name <name>@2x.png. Web version: https://s3eidat.github.io/svg-to-png/

NameTypeReqDescription
backgroundstring–Background colour when transparent is false. Default #ffffff.
heightinteger–Height in px for modes height / exact.
modestring–How to size the PNG. Default scale.
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).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
scalenumber–Scale factor for mode "scale". Default 2.
svgstring–The SVG: a local path or base64 / data URI.
svgTextstring–Or: the SVG code itself.
transparentboolean–Keep the background transparent. Default true.
widthinteger–Width in px for modes width / exact.

No output schema declared.

No examples provided.

image_to_base64 ~288

Encode an image (or any file) as Base64: a data URI, bare Base64, a CSS background-image rule, an HTML <img> tag (with width/height), Markdown, or for SVG a URL-encoded data URI (usually ~30% smaller). Detects the type from the bytes and warns when the result is too big to inline (over 10 KB: slows pages; over 1 MB: use a normal file). Results longer than maxChars are written to a .txt file instead of being returned. Web version: https://s3eidat.github.io/image-to-base64/

NameTypeReqDescription
asstring–What to return: dataUri (default), base64, css, html, markdown, or svgUri (SVG only).
imagestringyesThe image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
maxCharsinteger–Longest text returned inline; longer results go to a file. Default 200000.
mimeTypestring–Override the detected MIME type (e.g. image/svg+xml).
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).

No output schema declared.

No examples provided.

image_watermark ~495

Add a text or logo watermark to a photo. Size is a % of the photo width, margin a % of the shorter side, so the result looks the same on any resolution. One of 9 positions or tiled across the whole image (brick pattern), with opacity, rotation, colour, weight and a soft shadow for text. Logo: any image (PNG with transparency works best). Output keeps the input format (JPEG/PNG/WebP) or as chosen; name <name>-watermarked.<ext>. Text uses the Inter font when installed, else a system sans-serif. Web version: https://s3eidat.github.io/watermark/

NameTypeReqDescription
colorstring–Text colour. Default #ffffff.
formatstring–Output format. Default keep.
imagestringyesThe photo: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
logostring–Use this image as the watermark instead of text: a local path or base64.
marginnumber–Margin from the edge in % of the shorter side; spacing between tiles when tiled. Default 4.
opacitynumber–Opacity in %. Default 60.
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 watermark sits (ignored when tiled). Default bottom-right.
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.
rotationnumber–Rotation in degrees (e.g. -30 for a diagonal tile). Default 0.
shadowboolean–Soft drop shadow behind text. Default true.
sizenumber–Watermark width as % of the photo width. Default 28.
textstring–Watermark text (ignored when a logo is given). Default "© Your Name".
tiledboolean–Repeat the watermark across the whole photo.
weightstring–Font weight. Default 700.

No output schema declared.

No examples provided.

ip_in_range ~126

Check whether an IPv4 or IPv6 address falls inside a range given as CIDR ("10.0.0.0/8", "2001:db8::/32"), a dash range ("192.168.1.10 - 192.168.1.60") or a single address. Web version: https://s3eidat.github.io/subnet-calc/

NameTypeReqDescription
ipstringyesThe address to test.
rangestringyesCIDR, "start - end" range, or single address (same family as "ip").

No output schema declared.

No examples provided.

json_format ~272

Validate, pretty-print (2 or 4 spaces, tab) or minify JSON, optionally sorting object keys (deeply). Invalid JSON gives a clear error with line and column and the lines around it. Also returns size, key count, depth and value count. Give "text" or a file "path"; "output" writes the result to a file. Uses the standard JSON parser (no comments or trailing commas). Web version: https://s3eidat.github.io/json-studio/

NameTypeReqDescription
indent––Indentation: 2, 4, "tab" (or any number of spaces 0-8).
modestring–"format" pretty-prints, "minify" removes all whitespace, "validate" only checks (never throws on bad JSON).
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 JSON file (UTF-8; use this for big inputs).
sortKeysboolean–Sort object keys alphabetically at every level.
textstring–The JSON as inline text.

No output schema declared.

No examples provided.

json_query ~276

Pick values out of JSON with a JSONPath expression. Supported: $ (root, optional), .key, ['key'], [0], [-1], [*], .*, ..key (recursive), [start:end:step] slices, unions [0,2] / ['a','b'], and filters like [?(@.price < 10 && @.tags)] (==, !=, <, <=, >, >=, =~ /regex/i, &&, ||, !, .length). Returns each match with its path (the same path style the website's tree view copies, e.g. $.store.book[0].title). Give "text" or a file "path". Web version: https://s3eidat.github.io/json-studio/

NameTypeReqDescription
limitinteger–Return at most this many matches (default 1000).
outputstring–Optional: write the matched values as a JSON array to this file.
pathstring–Or: a path to a JSON file (UTF-8; use this for big inputs).
querystringyesJSONPath expression, e.g. "$.store.book[*].author" or "$..book[?(@.price < 10)].title".
textstring–The JSON as inline text.

No output schema declared.

No examples provided.

json_to_csv ~295

Convert JSON to CSV. An array of objects becomes one row per object with nested objects/arrays flattened to dotted columns (address.city, tags.0); an array of arrays is written as-is. Fields are quoted only when needed (delimiter, quotes, line breaks, leading/trailing spaces); CRLF line ends. A formula guard (on by default) prefixes cells starting with = + - @ so spreadsheets don't run them. Give "text" or a file "path". Web version: https://s3eidat.github.io/csv-json/

NameTypeReqDescription
bomboolean–Start with a UTF-8 BOM so Excel reads non-English text correctly.
delimiterstring–Delimiter: "auto" (comma), ",", ";", "tab" or "|".
headerboolean–Include a header row (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 JSON file (UTF-8; use this for big inputs).
safeboolean–Formula guard: prefix cells like =SUM(A1) with ' (default true).
textstring–The JSON (array or object) as inline text.

No output schema declared.

No examples provided.

json_to_types ~306

Generate type definitions from a JSON sample: TypeScript interfaces (or type aliases), Go structs with json tags (initialisms like ID/URL, pointers for optional/nullable, optional omitempty), Python dataclasses (snake_case fields with the original key noted) and Zod schemas. All items of an array are merged into one type (missing keys become optional, null makes a field nullable, int+float → number/float64, mixed values → unions); identical shapes share one name. These four are every language the website supports. Give "text" or a file "path". Web version: https://s3eidat.github.io/json-to-types/

NameTypeReqDescription
exportboolean–TypeScript / Zod: add the export keyword.
goOmitEmptyboolean–Go: add ,omitempty to optional fields.
languagestring–Output language, or "all" for all four.
outputstring–Optional: write the code to this file (with language "all", the four outputs joined by headers).
pathstring–Or: a path to a JSON file (UTF-8; use this for big inputs).
rootNamestring–Name of the top-level type (turned into PascalCase).
textstring–The JSON sample as inline text.
tsTypeAliasboolean–TypeScript: use "type X = {…}" instead of "interface X {…}".

No output schema declared.

No examples provided.

json_to_yaml ~234

Convert JSON to YAML (js-yaml dump: no line wrapping, no anchors; strings that would read as numbers/booleans are quoted). Options: 2 or 4 space indent, sort keys, and write a top-level array as a multi-document YAML stream (--- per item). Invalid JSON gives line and column. Give "text" or a file "path". Web version: https://s3eidat.github.io/yaml-json/

NameTypeReqDescription
indent––Indentation: 2 or 4 spaces.
multiDocumentboolean–A top-level JSON array becomes one YAML document per item.
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 JSON file (UTF-8; use this for big inputs).
sortKeysboolean–Sort mapping keys alphabetically.
textstring–The JSON as inline text.

No output schema declared.

No examples provided.

jwt_decode ~199

Decode a JSON Web Token (a leading "Bearer " is fine): header, payload, iat/nbf/exp/auth_time as ISO dates with relative time, expired / not-yet-valid status, and named standard claims. If "secret" is given, verifies HS256/HS384/HS512 signatures (secret as text or Base64URL). RS/ES/PS tokens are decoded but not verified (needs a public key). Encrypted JWE tokens can't be read. Web version: https://s3eidat.github.io/jwt-inspector/

NameTypeReqDescription
nownumber–Unix time in seconds to judge expiry against. Default: now.
secretstring–HMAC secret to verify an HS256/384/512 signature.
secretIsBase64boolean–The secret is Base64/Base64URL-encoded bytes, not text.
tokenstringyesThe JWT (header.payload.signature).

No output schema declared.

No examples provided.

markdown_table ~353

Make a GitHub-flavoured Markdown table from CSV, TSV, a JSON array (of objects or of arrays), an existing Markdown table (to re-align / re-pad it) or a "rows" array. Per-column alignment (left, center, right), columns padded to line up (optional), pipes escaped as \| and line breaks as <br>. CSV delimiter (comma, semicolon, tab) is detected from the first line. Give "text", a file "path" or "rows". Web version: https://s3eidat.github.io/markdown-table/

NameTypeReqDescription
align––Column alignment: one value for all columns or one per column. Default: keep a Markdown input's alignment, else none.
formatstring–Input format; "auto" detects Markdown, then JSON, then CSV/TSV.
headerboolean–First row is the header. When false, "Column 1", "Column 2"… headers are added.
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/JSON/Markdown file (UTF-8; use this for big inputs).
prettyboolean–Pad cells so the columns line up (default true).
rowsarray–Or: the table as an array of rows (first row = header unless header is false).
textstring–The CSV / TSV / JSON / Markdown table as inline text.

No output schema declared.

No examples provided.

markdown_table_parse ~201

Read a Markdown table (pipes optional at the ends, \| escapes, <br> as line breaks) back into data: JSON objects keyed by the header, JSON arrays, or CSV; also returns each column's alignment. Uses the website's Markdown import. Give "text" or a file "path". Web version: https://s3eidat.github.io/markdown-table/

NameTypeReqDescription
asstring–"objects" (header → keys), "arrays" (header row first) or "csv".
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 Markdown file (UTF-8; use this for big inputs).
textstring–The Markdown table as inline text.

No output schema declared.

No examples provided.

meta_tags_generate ~345

Generate the <head> HTML for SEO and social sharing: <title>, meta description, canonical link, Open Graph (og:type, url, title, description, image + alt, site_name, locale) and X/Twitter card tags. All values are HTML-escaped. Also checks lengths (title 30–60, description 70–160 characters), URLs and the @handle, and shows how Google, Facebook and X would truncate the title and description. URLs without a scheme get https://. Optionally writes the tags to an .html file. Web version: https://s3eidat.github.io/meta-tags/

NameTypeReqDescription
cardstring–X card type. Default summary_large_image.
descriptionstring–Meta description (aim for 70–160 characters).
imagestring–Share image URL (1200×630 recommended).
imageAltstring–Alt text for the share image.
localestring–og:locale, e.g. en_US or ar_AR.
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).
siteNamestring–Site name (og:site_name).
titlestring–Page title (aim for 30–60 characters).
twitterstring–X/Twitter handle: "@name", "name" or a profile URL.
typestring–og:type, e.g. website, article, product, profile. Default website.
urlstring–Canonical page URL.

No output schema declared.

No examples provided.

password_check ~167

Estimate how strong a password really is, the way attackers guess (zxcvbn-style): finds common passwords (1,282-entry list), dictionary words (also reversed, capitalised or l33t), keyboard walks, sequences, repeats, years and dates, then the cheapest way to guess the whole thing. Returns a 0–4 score, entropy bits, guesses, crack time for 4 attack scenarios, the pieces found, and advice. Offline only: no breach lookups, nothing stored or logged. Web version: https://s3eidat.github.io/password-check/

NameTypeReqDescription
passwordstringyesThe password to check (only the first 256 characters are analysed in detail).
showPiecesboolean–Include the matched pieces (they contain parts of the password).

No output schema declared.

No examples provided.

password_generate ~366

Generate strong random passwords (8–128 chars; lower/upper/digits/symbols; skip look-alikes Il1|O0o; exclude your own characters; require every chosen set) or passphrases (3–12 words from the website's 2,381-word list, separator, capitalise, add a number). Returns 1–1000 results with exact entropy bits, a strength grade and the time to crack at 100 billion guesses/s. Always crypto random (OS CSPRNG, rejection sampling); nothing is stored or logged. Web version: https://s3eidat.github.io/pass-forge/

NameTypeReqDescription
addNumberboolean–passphrase: append a number 0–99 to one random word.
avoidLookalikesboolean–password: leave out I l 1 | O 0 o.
capitalizeboolean–passphrase: capitalise each word.
countinteger–How many to generate.
digitsboolean–password: include 0–9.
excludestring–password: characters never to use.
lengthinteger–password: number of characters.
lowerboolean–password: include a–z.
modestring–Random characters or random words.
requireEachSetboolean–password: at least one character from every chosen set.
separatorstring–passphrase: between words ("" = none, words then capitalised).
symbolsboolean–password: include symbols !#$%&*+-=?@^_~()[]{}<>.,:;/|
upperboolean–password: include A–Z.
wordsinteger–passphrase: number of words.

No output schema declared.

No examples provided.

pdf_compress ~296

Shrink a PDF by re-rendering every page as a JPEG image (best for scans and photo-heavy files). Presets like the website: email (96 DPI, quality 55), balanced (144 DPI, 72), high (220 DPI, 85); or set dpi/quality yourself; optional grayscale. The result loses selectable text, links and form fields. Reports before/after size and a verdict ("bigger" means keep the original: the PDF was already efficient). Web version: https://s3eidat.github.io/pdf-compress/

NameTypeReqDescription
dpiinteger–Override the preset resolution (36-300 DPI).
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
grayscaleboolean–Convert pages to grayscale.
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–Password, if the PDF is protected.
presetstring–Quality preset. Default "balanced".
qualityinteger–Override the preset JPEG quality (30-95).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

pdf_extract_pages ~223

Make one new PDF from selected pages of a PDF, e.g. "1-3, 7, 10-" (order as written, each page once). The rest of the file is left out. To reorder, duplicate or delete pages use pdf_organize. Web version: https://s3eidat.github.io/pdf-split/

NameTypeReqDescription
filestringyesThe PDF: 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).
pagesstringyesPages to keep: "1-3, 7, 10-" ("5-" = to the end; also "odd", "even", "last").
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

pdf_form_fields ~121

List the fillable fields of a PDF form in reading order: name, readable label, type (text, checkbox, radio, dropdown, list, signature, button), page, current value, options, and whether it is required / read-only / multi-line. Use the names with pdf_form_fill. Web version: https://s3eidat.github.io/pdf-fill/

NameTypeReqDescription
filestringyesThe PDF: 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.

pdf_form_fill ~287

Fill PDF form fields by name (get names from pdf_form_fields): text as strings, checkboxes as true/false, radio groups and dropdowns by option text, lists as arrays. Optionally flatten (bake the answers into the page, no longer editable). Only changed fields are redrawn. Text the standard font cannot draw (Arabic…) is kept and viewers are asked to draw it, but cannot be flattened. Web version: https://s3eidat.github.io/pdf-fill/

NameTypeReqDescription
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
flattenboolean–Flatten the form after filling (fields become plain page content).
ignoreUnknownboolean–Skip names that are not in the form instead of failing.
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).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
valuesobjectyesField name -> value, e.g. {"name": "Sara", "agree": true, "plan": "pro", "langs": ["Arabic"]}.

No output schema declared.

No examples provided.

pdf_from_images ~305

Make a PDF from images (JPEG, PNG, WebP, GIF, TIFF, AVIF, SVG…), one image per page, in the order given. Page size A4, Letter, or "fit" (page = image size at 96 dpi); orientation auto/portrait/landscape; margin in mm; quality "original" (JPEG/PNG kept as-is), high (≤3000 px, JPEG 90), medium (≤2000 px, 75) or small (≤1400 px, 60). Photos are turned upright from their EXIF orientation. Web version: https://s3eidat.github.io/images-to-pdf/

NameTypeReqDescription
imagesarrayyesImages in page order: path/base64 strings, or {file, rotate}.
marginnumber–Margin around each image in mm. Default 10.
orientationstring–"auto" turns the page to match each image. Ignored for "fit".
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).
pageSizestring–Page size. Default "a4".
qualitystring–Image quality / size trade-off. Default "high".
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

pdf_info ~168

Quick facts about a PDF for planning the next step: page count, page sizes (points, mm, paper name such as "A4 portrait", grouped by size), rotated pages, encryption, PDF version, form field count, title/author, and which pages have no text layer (scans that would need OCR). Related web tool: https://s3eidat.github.io/pdf-metadata/

NameTypeReqDescription
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
passwordstring–Password, for the text check on a protected PDF.
textCheckboolean–Check which pages have a text layer (reads up to 500 pages). Default true.

No output schema declared.

No examples provided.

pdf_merge ~184

Combine several PDFs into one, in the order given. Each entry can be a file (path or base64) or {file, pages} to take only some pages ("1-3, 5, 8-"; "3-1" keeps reverse order; a page can repeat). Password-protected PDFs must be unlocked first. Web version: https://s3eidat.github.io/pdf-merge/

NameTypeReqDescription
filesarrayyesPDFs to merge, in order: a path/base64 string, or {file, pages}.
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).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

pdf_metadata_read ~134

Show what a PDF reveals about itself: Title, Author, Subject, Keywords, Creator, Producer, creation/modification dates (with time zone), custom info fields, XMP metadata (size, edit history, creator) and the document ID. Optionally returns the XMP XML. Web version: https://s3eidat.github.io/pdf-metadata/

NameTypeReqDescription
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
includeXmpboolean–Also return the decoded XMP XML.

No output schema declared.

No examples provided.

pdf_metadata_write ~453

Change PDF info fields (title, author, subject, keywords, creator, producer, dates, custom fields) or strip all metadata: info fields, XMP, page-level data and the document ID, and drop unreachable leftovers from earlier edits so no trace stays in the bytes. Untouched values keep their exact original form. Web version: https://s3eidat.github.io/pdf-metadata/

NameTypeReqDescription
authorstring–Author. "" removes it; omit to keep it.
creationDatestring–Creation date as ISO 8601, e.g. "2026-03-14T09:30:00+03:00". "" removes it; omit to keep it.
creatorstring–Creator (the app that made it). "" removes it; omit to keep it.
customobject–Custom info fields to set; null removes one. E.g. {"Company": null}.
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
keywordsstring–Keywords. "" removes it; omit to keep it.
modDatestring–Modification date as ISO 8601. "" removes it; omit to keep it.
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).
producerstring–Producer (the PDF engine). "" removes it; omit to keep it.
removeDocumentIdboolean–Remove the document ID from the trailer.
removeXmpboolean–Remove the XMP metadata stream (and page-level XMP/PieceInfo).
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
stripboolean–Remove ALL metadata (other edits are ignored).
subjectstring–Subject. "" removes it; omit to keep it.
titlestring–Title. "" removes it; omit to keep it.

No output schema declared.

No examples provided.

pdf_organize ~287

Rebuild a PDF from a page list: reorder, delete (leave pages out), duplicate (list a page twice) and insert blank pages. "3, 1-2, blank, 5-" puts page 3 first, then 1-2, a blank page (same size as the page before it), then 5 to the end; page 4 is dropped. Optionally rotate pages of the result. Existing page rotation is kept. Web version: https://s3eidat.github.io/pdf-organizer/

NameTypeReqDescription
filestringyesThe PDF: 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).
pagesstringyesNew page order (1-based source pages): e.g. "3, 1-2, blank, 2, 5-". Pages not listed are removed; "blank" adds an empty page.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
rotatearray–Optional rotations applied to pages of the new order.

No output schema declared.

No examples provided.

pdf_page_numbers ~551

Add page numbers to a PDF, plus an optional header and footer line. Format tokens: {n}, {total}, {date}, {filename} (e.g. "Page {n} of {total}", "{n} / {total}", "- {n} -"). Choose the corner/edge, start number, how many leading pages to skip (e.g. a cover), a page range, font, size, colour and margin. Numbers stay upright on rotated pages. Web version: https://s3eidat.github.io/pdf-page-numbers/

NameTypeReqDescription
colorstring–Colour as hex "#rrggbb". Default #333333.
datestring–Text for {date}. Default: today in the server locale.
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
fontstring––
footerstring–Optional footer text on numbered pages (tokens allowed).
footerAlignstring–Footer alignment: l, c or r.
formatstring–Number format with {n}, {total}, {date}, {filename}. Default "Page {n} of {total}". Empty = no number (header/footer only).
headerstring–Optional header text on numbered pages (tokens allowed).
headerAlignstring–Header alignment: l, c or r.
marginnumber–Distance from the page edge in points. Default 28.
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).
pagesstring–Pages to number: 1-based list like "1-3, 5, 8-" ("5-" = to the end, "-3" = first three, "3-1" = reversed). Also "all", "odd", "even", "last". Empty = all pages.
positionstring–Where the number goes: t/b = top/bottom, l/c/r = left/centre/right. Default "bc".
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
sizenumber–Text size in points. Default 10.
skipinteger–Leave this many first pages without a number (e.g. 1 for a cover). Default 0.
startinteger–Number of the first numbered page. Default 1.

No output schema declared.

No examples provided.

pdf_rotate ~261

Rotate selected pages of a PDF by 90, 180 or 270 degrees clockwise (-90 = counter-clockwise), on top of any rotation they already have. Other pages, links and form fields are left as they are. Web version: https://s3eidat.github.io/pdf-organizer/

NameTypeReqDescription
angle–yesClockwise degrees: 90, 180, 270, or -90.
filestringyesThe PDF: 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).
pagesstring–Pages to rotate: 1-based list like "1-3, 5, 8-" ("5-" = to the end, "-3" = first three, "3-1" = reversed). Also "all", "odd", "even", "last". Empty = all pages.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.

No output schema declared.

No examples provided.

pdf_sign_image ~433

Place a signature (or initials, stamp, logo) image on PDF pages at x/y/width in points, measured from the top-left of the page as it is shown (rotated pages are handled). A light paper background is removed by default so scanned signatures sit cleanly on the page. Optional text marks (name, date…) can be added too. This is a visual signature, not a cryptographic digital signature. To draw a signature by hand, use the web version: https://s3eidat.github.io/pdf-sign/

NameTypeReqDescription
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
heightnumber–Height in points. Default: keeps the image aspect ratio.
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).
pagesstring–Pages to sign: "last" (default), "1", "all", "1-3"…
removeBackgroundboolean–Make light (paper) pixels transparent and trim to the ink. Default true.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
signaturestring–Signature image: local path or base64 (PNG, JPEG, WebP…).
textsarray–Optional text marks, e.g. the printed name or the date.
thresholdinteger–Brightness (0-255) above which pixels become transparent. Default 210.
widthnumber–Width in points. Default 150 (about 5.3 cm).
xnumber–Left edge in points from the left of the page (72 pt = 1 inch). Default 72.
ynumber–Top edge in points from the TOP of the page. Default: 72 pt above the bottom margin.

No output schema declared.

No examples provided.

pdf_split ~287

Split one PDF into several PDFs written to a folder: by page ranges (one file per range, e.g. "1-3, 4-6, 7-"), every N pages, or one file per page. Files are named like the website: <name>-pages-1-3.pdf, <name>-part-01.pdf, <name>-page-001.pdf. Use pdf_extract_pages to get a single PDF with chosen pages. Web version: https://s3eidat.github.io/pdf-split/

NameTypeReqDescription
everyinteger–For mode "every": pages per file (e.g. 2 makes 1-2, 3-4…).
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
modestringyes"ranges": one PDF per range in `ranges`; "every": a new PDF every `every` pages; "single": one PDF per page.
outputstring–Folder to write the PDFs into (created if missing). Default: a new folder in the server output folder.
rangesstring–For mode "ranges": comma-separated ranges, each becomes one PDF, e.g. "1-3, 4-6, 7-".

No output schema declared.

No examples provided.

pdf_to_images ~324

Render PDF pages to PNG, JPEG or WebP images in a folder (one file per page, named <name>-p001.png…). Choose the DPI (72 = screen size, 150 = default, 300 = print), JPEG/WebP quality, a page range, and a transparent background for PNG/WebP. Very large pages are capped at 16384 px a side / 16.7 megapixels, like the website. Web version: https://s3eidat.github.io/pdf-to-images/

NameTypeReqDescription
dpinumber–Resolution in dots per inch. Default 150.
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
formatstring–Image format. Default "png".
outputstring–Folder to write the images into (created if missing). Default: a new folder in the server output folder.
pagesstring–Pages to render: 1-based list like "1-3, 5, 8-" ("5-" = to the end, "-3" = first three, "3-1" = reversed). Also "all", "odd", "even", "last". Empty = all pages.
passwordstring–Password, if the PDF is protected.
qualityinteger–JPEG/WebP quality 1-100. Default 90.
transparentboolean–Keep the page background transparent (PNG/WebP only).

No output schema declared.

No examples provided.

pdf_to_text ~369

Extract the text of a PDF with lines and paragraphs rebuilt (right-to-left Arabic/Hebrew lines in reading order), as plain text or Markdown, with optional page separators and reflow (join lines, mend hyphenated words). Returns per-page word counts and flags pages with no text layer (scans: this tool does no OCR). Supports page ranges and passwords. Give "output" to write a .txt/.md file instead of returning the text inline. Web version: https://s3eidat.github.io/pdf-to-text/

NameTypeReqDescription
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
formatstring–"text" or "markdown" (## Page N headings, reflowed paragraphs).
maxCharsinteger–Cut the inline text after this many characters (the file output is never cut).
outputstring–Write the text to this file (or folder ending in "/") instead of returning it inline.
pagesstring–Pages to read: 1-based list like "1-3, 5, 8-" ("5-" = to the end, "-3" = first three, "3-1" = reversed). Also "all", "odd", "even", "last". Empty = all pages.
passwordstring–Password, if the PDF is protected.
perPageboolean–Also return each page's text separately.
reflowboolean–Join the lines of each paragraph and mend words split by a hyphen.
separatorsboolean–Put a "——— Page N ———" line before each page. Default true.

No output schema declared.

No examples provided.

pdf_watermark ~479

Stamp a text or image watermark on PDF pages: centred or tiled across the page, with opacity, angle, size, colour and a page range. It reads upright on rotated pages. Text the standard PDF fonts cannot draw (Arabic, CJK…) is stamped as an image. Defaults match the website: "CONFIDENTIAL", Helvetica Bold 72 pt, #d64545, 25% opacity, 45°. Web version: https://s3eidat.github.io/pdf-watermark/

NameTypeReqDescription
anglenumber–Rotation in degrees, counter-clockwise as shown. Default 45.
colorstring–Colour as hex "#rrggbb". Default #d64545.
filestringyesThe PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI).
fontstring–Font for text.
gapnumber–Space between tiles in points (tile mode). Default 80.
imagestring–Image watermark instead of text: a local path or base64 (PNG, JPEG, WebP, SVG…).
modestring–"center": one stamp in the middle; "tile": repeated across the page.
opacitynumber–Opacity in % (1-100). Default 25.
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).
pagesstring–Pages to stamp: 1-based list like "1-3, 5, 8-" ("5-" = to the end, "-3" = first three, "3-1" = reversed). Also "all", "odd", "even", "last". Empty = all pages.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
scalenumber–Image width as % of the page width. Default 40.
sizenumber–Text size in points. Default 72.
textstring–Watermark text (default "CONFIDENTIAL"). Ignored when "image" is given.

No output schema declared.

No examples provided.

prayer_times ~589

Islamic prayer times (Fajr, Sunrise, Dhuhr, Asr, Maghrib, Isha) for any coordinates + IANA time zone, or a known city, for one day, several days or a whole month, plus the Hijri (Umm al-Qura) date and the next prayer with a countdown. Same astronomy as the website (adhan.js): 13 methods (Jordan Awqaf, MWL, Umm al-Qura, Egyptian, ISNA, Karachi, Dubai, Kuwait, Qatar, Turkey, Singapore, Tehran, Moonsighting), Shafi'i or Hanafi Asr, and the recommended high-latitude rule beyond 48° (overridable). Times are local HH:MM (24 h) in the given zone, plus UTC ISO. Coordinates are rounded to 4 decimals like the site. Web version: https://s3eidat.github.io/prayer-times/

NameTypeReqDescription
asrstring–Asr school: "shafi" (standard: Shafi'i, Maliki, Hanbali) or "hanafi". Default shafi (hanafi for Karachi-method cities).
citystring–A known city (sets coordinates, time zone and its usual method): amman, irbid, zarqa, aqaba, mecca, medina, riyadh, jeddah, jerusalem, gaza, damascus, beirut, baghdad, cairo, alexandria, dubai, abudh…
datestring–First day, YYYY-MM-DD in the place's calendar. Default: today there.
daysinteger–How many consecutive days to return.
highLatitudeRulestring–"auto" = website behaviour (recommended rule when |latitude| > 48°).
latitudenumber–Latitude in degrees (−90..90). Use with longitude and timezone.
longitudenumber–Longitude in degrees (−180..180).
methodstring–Calculation method. Default: the city's usual method, else "mwl".
monthstring–Or a whole month timetable, YYYY-MM (overrides date/days).
nowstring–Reference instant (ISO 8601) for "today" and the next prayer. Default: the current time.
timezonestring–IANA time zone of the place, e.g. "Asia/Amman" (required with coordinates; overrides the city's).

No output schema declared.

No examples provided.

qibla_direction ~300

Qibla direction (great-circle bearing from true north to the Kaaba in Makkah) and distance from any coordinates or a known city, with the compass point, a "face north, then turn right/left N°" instruction, and (if you give a device heading) how far to turn. Bearings are from TRUE north; a magnetic compass can differ by a few degrees. Web version: https://s3eidat.github.io/qibla-finder/

NameTypeReqDescription
citystring–Or a known city: amman, irbid, zarqa, aqaba, mecca, medina, riyadh, jeddah, jerusalem, gaza, damascus, beirut, baghdad, cairo, alexandria, dubai, abudhabi, doha, kuwait, manama, muscat, istanbul, cas…
headingnumber–Optional: the direction you are facing now (degrees from north) to get a turn instruction.
latitudenumber–Latitude in degrees (−90..90).
longitudenumber–Longitude in degrees (−180..180).

No output schema declared.

No examples provided.

qr_generate ~788

Make a QR code as SVG or PNG for a link, plain text, Wi-Fi login, contact card (vCard 3.0), email, SMS, phone call or map location. Same encoder as the website (qrcode.js: versions 1-40, error correction L/M/Q/H, smallest version that fits, best mask), UTF-8 so Arabic/emoji work. Options: size in px, quiet-zone margin, colours, square/rounded/dots modules, and an optional centre logo (forces level H). Returns the file path, the exact encoded text, version, module count and contrast warnings. Max about 2.9 KB of data at level L. Web version: https://s3eidat.github.io/qr-studio/

NameTypeReqDescription
addressstring–vcard: address.
backgroundstring–Background colour, hex (default #ffffff).
bodystring–email: message body.
companystring–vcard: company.
eccstring–Error correction: L 7%, M 15% (default), Q 25%, H 30%. A logo forces H.
emailstring–vcard: email address.
firstNamestring–vcard: first name.
foregroundstring–Module colour, hex (default #0d0f12).
formatstring–Output format.
hiddenboolean–wifi: the network is hidden.
jobTitlestring–vcard: job title.
labelstring–geo: optional place label (?q=).
lastNamestring–vcard: last name.
latitudenumber|string–geo: latitude, -90..90.
logostring–Optional centre logo image (path or base64, max 5 MB). Covers ~22% of the code; error correction becomes H.
longitudenumber|string–geo: longitude, -180..180.
margininteger–Quiet zone in modules (default 4; under 2 may not scan).
messagestring–sms: message text.
modestring–Encoding mode. "byte" (UTF-8, what the website uses), "auto" (numeric/alphanumeric when the text allows, smaller codes), or force one.
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–wifi: password (ignored for open networks).
phonestring–vcard/sms/tel: phone number.
returnBase64boolean–Also return the output as base64 in the result (only for small files). Default false.
securitystring–wifi: WPA (WPA/WPA2/WPA3, default), WEP, or nopass (open).
shapestring–Module shape. Rounded/dots also round the three finder squares.
sizeinteger–Image width/height in px (default 1024).
ssidstring–wifi: network name.
subjectstring–email: subject.
textstring–text: any text (encoded exactly as given).
tostring–email: recipient address.
typestring–What the code holds. Default: "url" if url is given, else "text".
urlstring–url: web address; "https://" is added when no scheme is given.
versioninteger–QR version 1-40 (size), or 0 = smallest that fits (default).
websitestring–vcard: website.

No output schema declared.

No examples provided.

qr_read ~190

Read (decode) a QR code from an image file: photo, screenshot or scan (PNG, JPEG, WebP, GIF, TIFF, AVIF, SVG). Uses jsQR like the website, trying several sizes and inverted (light-on-dark) codes. Returns the text plus what it is (Link, Wi-Fi, Contact, Email, SMS, Phone, Location, Event or Text) with parsed fields, and safety notes for links (http, hidden @ user part, punycode lookalikes, bare IPs, odd ports). Links are never opened. Reads one code per image. Web version (with camera): https://s3eidat.github.io/qr-scanner/

NameTypeReqDescription
imagestringyesThe image containing a QR code: 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.

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.