S3eidat Tools
NPM · S3EIDAT-TOOLS-MCP
Free, private PDF, image, text, developer, calculator and QR tools. Runs locally; no uploads.
Available components
Last scanned (10 hours ago)
Scores higher than 31% of npm servers
Category Documents and Files
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain 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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 5 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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 →
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.
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 →
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 →
image_favicon_set Favicon set generator ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Background colour. Default #0e7c86. |
| color | string | – | Text colour. Default #ffffff. |
| fit | string | – | How an image fills the padded square. Default contain. |
| image | string | – | Use this image (logo) instead of text: a local path or base64. Square, 512 px+ works best. |
| name | string | – | App name for site.webmanifest. Default "My Website". |
| output | string | – | Folder to write the files into. Default: a new "favicons" folder in the output folder. |
| padding | number | – | Padding around the text/image in %. Default 14. |
| radius | number | – | Corner radius in % of the size (50 = circle). Default 22. |
| shortName | string | – | Short name for site.webmanifest. Default "Site". |
| text | string | – | Letter(s) or emoji drawn on the icon (when no image is given). Default "S". |
| transparent | boolean | – | Transparent background (the Apple icon still gets white). Default false. |
| weight | string | – | Font weight for text. Default 900. |
No output schema declared.
No examples provided.
image_from_base64 Base64 / data URI to image file ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| output | string | – | 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). |
| path | string | – | Or: a text file containing it. |
| text | string | – | The data URI / CSS / <img> tag / raw Base64. |
No output schema declared.
No examples provided.
image_palette Colour palette from image ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Number of colours. Default 6. |
| format | string | – | Export text format. Default css. |
| image | string | yes | The image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| method | string | – | kmeans (default) or median (median cut). |
| output | string | – | Where to write palette.png (file path or folder ending in "/"). Implies swatchPng. |
| swatchPng | boolean | – | Also write palette.png (160×200 swatch per colour with its hex code). |
No output schema declared.
No examples provided.
image_placeholder Placeholder image ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Background colour (#rgb or #rrggbb). Default #1f2937. |
| color | string | – | Text colour (#rgb or #rrggbb). Default #9ca3af. |
| dataUri | boolean | – | Also return the image as a data URI and an <img> tag (for small images). |
| fontSize | number | – | Font size in px; 0 = auto-fit (default). |
| fontWeight | string | – | Font weight. Default 600. |
| format | string | – | Output format. Default png. |
| height | integer | – | Height in pixels. Default 630. |
| output | string | – | 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). |
| preset | string | – | 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… |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| text | string | – | Text to show. Empty = "W × H". Use "\n" (backslash n) or a real newline for a line break. |
| width | integer | – | Width in pixels. Default 1200. |
No output schema declared.
No examples provided.
image_resize Resize image ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| crop | object | – | Crop box (x, y, width, height in pixels) applied before resizing; overrides ratio. |
| fit | string | – | When both width and height are set: cover (crop to fill, default), contain (fit inside), fill (stretch). |
| format | string | – | Output format. "keep" = same as the input when it is JPEG/PNG/WebP (else PNG). Default keep. |
| height | integer | – | Target height in pixels. |
| image | string | yes | The image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| output | string | – | 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). |
| percent | number | – | Scale by percent instead (e.g. 50 halves both sides, 200 doubles). |
| preset | string | – | 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… |
| quality | integer | – | Quality 1-100 for JPEG / WebP / AVIF (ignored for PNG). Default 90, same as the website. |
| ratio | string|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". |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| width | integer | – | Target width in pixels. |
No output schema declared.
No examples provided.
image_rotate Rotate / flip image ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| angle | number | – | Clockwise rotation in degrees (negative = counter-clockwise). Default 90. |
| autoOrient | boolean | – | Apply the EXIF Orientation tag first (what browsers show). Default true. |
| background | string | – | Fill for the corners uncovered by a non-right-angle rotation. Default transparent (white in JPEG). |
| flipHorizontal | boolean | – | Mirror left-right (after rotating). |
| flipVertical | boolean | – | Mirror top-bottom (after rotating). |
| format | string | – | Output format. Default keep (JPEG/PNG/WebP stay, others become PNG). |
| image | string | yes | The image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| output | string | – | 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). |
| quality | integer | – | Quality 1-100 for JPEG / WebP / AVIF (ignored for PNG). Default 92, same as the website. |
| returnBase64 | boolean | – | 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 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/
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Background colour when transparent is false. Default #ffffff. |
| height | integer | – | Height in px for modes height / exact. |
| mode | string | – | How to size the PNG. Default scale. |
| output | string | – | 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). |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| scale | number | – | Scale factor for mode "scale". Default 2. |
| svg | string | – | The SVG: a local path or base64 / data URI. |
| svgText | string | – | Or: the SVG code itself. |
| transparent | boolean | – | Keep the background transparent. Default true. |
| width | integer | – | Width in px for modes width / exact. |
No output schema declared.
No examples provided.
image_to_base64 Image to Base64 / data URI ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| as | string | – | What to return: dataUri (default), base64, css, html, markdown, or svgUri (SVG only). |
| image | string | yes | The image: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| maxChars | integer | – | Longest text returned inline; longer results go to a file. Default 200000. |
| mimeType | string | – | Override the detected MIME type (e.g. image/svg+xml). |
| output | string | – | 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 Watermark image ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Text colour. Default #ffffff. |
| format | string | – | Output format. Default keep. |
| image | string | yes | The photo: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| logo | string | – | Use this image as the watermark instead of text: a local path or base64. |
| margin | number | – | Margin from the edge in % of the shorter side; spacing between tiles when tiled. Default 4. |
| opacity | number | – | Opacity in %. Default 60. |
| output | string | – | 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). |
| position | string | – | Where the watermark sits (ignored when tiled). Default bottom-right. |
| quality | integer | – | Quality 1-100 for JPEG / WebP / AVIF (ignored for PNG). Default 92, same as the website. |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| rotation | number | – | Rotation in degrees (e.g. -30 for a diagonal tile). Default 0. |
| shadow | boolean | – | Soft drop shadow behind text. Default true. |
| size | number | – | Watermark width as % of the photo width. Default 28. |
| text | string | – | Watermark text (ignored when a logo is given). Default "© Your Name". |
| tiled | boolean | – | Repeat the watermark across the whole photo. |
| weight | string | – | Font weight. Default 700. |
No output schema declared.
No examples provided.
ip_in_range Is this IP in that 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/
| Name | Type | Req | Description |
|---|---|---|---|
| ip | string | yes | The address to test. |
| range | string | yes | CIDR, "start - end" range, or single address (same family as "ip"). |
No output schema declared.
No examples provided.
json_format JSON format / minify / validate ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| indent | – | – | Indentation: 2, 4, "tab" (or any number of spaces 0-8). |
| mode | string | – | "format" pretty-prints, "minify" removes all whitespace, "validate" only checks (never throws on bad JSON). |
| output | string | – | 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. |
| path | string | – | Or: a path to a JSON file (UTF-8; use this for big inputs). |
| sortKeys | boolean | – | Sort object keys alphabetically at every level. |
| text | string | – | The JSON as inline text. |
No output schema declared.
No examples provided.
json_query JSON query (JSONPath) ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Return at most this many matches (default 1000). |
| output | string | – | Optional: write the matched values as a JSON array to this file. |
| path | string | – | Or: a path to a JSON file (UTF-8; use this for big inputs). |
| query | string | yes | JSONPath expression, e.g. "$.store.book[*].author" or "$..book[?(@.price < 10)].title". |
| text | string | – | The JSON as inline text. |
No output schema declared.
No examples provided.
json_to_csv 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/
| Name | Type | Req | Description |
|---|---|---|---|
| bom | boolean | – | Start with a UTF-8 BOM so Excel reads non-English text correctly. |
| delimiter | string | – | Delimiter: "auto" (comma), ",", ";", "tab" or "|". |
| header | boolean | – | Include a header row (default true). |
| output | string | – | 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. |
| path | string | – | Or: a path to a JSON file (UTF-8; use this for big inputs). |
| safe | boolean | – | Formula guard: prefix cells like =SUM(A1) with ' (default true). |
| text | string | – | The JSON (array or object) as inline text. |
No output schema declared.
No examples provided.
json_to_types JSON to types (TypeScript, Go, Python, Zod) ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| export | boolean | – | TypeScript / Zod: add the export keyword. |
| goOmitEmpty | boolean | – | Go: add ,omitempty to optional fields. |
| language | string | – | Output language, or "all" for all four. |
| output | string | – | Optional: write the code to this file (with language "all", the four outputs joined by headers). |
| path | string | – | Or: a path to a JSON file (UTF-8; use this for big inputs). |
| rootName | string | – | Name of the top-level type (turned into PascalCase). |
| text | string | – | The JSON sample as inline text. |
| tsTypeAlias | boolean | – | TypeScript: use "type X = {…}" instead of "interface X {…}". |
No output schema declared.
No examples provided.
json_to_yaml 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/
| Name | Type | Req | Description |
|---|---|---|---|
| indent | – | – | Indentation: 2 or 4 spaces. |
| multiDocument | boolean | – | A top-level JSON array becomes one YAML document per item. |
| output | string | – | 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. |
| path | string | – | Or: a path to a JSON file (UTF-8; use this for big inputs). |
| sortKeys | boolean | – | Sort mapping keys alphabetically. |
| text | string | – | The JSON as inline text. |
No output schema declared.
No examples provided.
jwt_decode 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/
| Name | Type | Req | Description |
|---|---|---|---|
| now | number | – | Unix time in seconds to judge expiry against. Default: now. |
| secret | string | – | HMAC secret to verify an HS256/384/512 signature. |
| secretIsBase64 | boolean | – | The secret is Base64/Base64URL-encoded bytes, not text. |
| token | string | yes | The JWT (header.payload.signature). |
No output schema declared.
No examples provided.
markdown_table 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/
| Name | Type | Req | Description |
|---|---|---|---|
| align | – | – | Column alignment: one value for all columns or one per column. Default: keep a Markdown input's alignment, else none. |
| format | string | – | Input format; "auto" detects Markdown, then JSON, then CSV/TSV. |
| header | boolean | – | First row is the header. When false, "Column 1", "Column 2"… headers are added. |
| output | string | – | 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. |
| path | string | – | Or: a path to a CSV/TSV/JSON/Markdown file (UTF-8; use this for big inputs). |
| pretty | boolean | – | Pad cells so the columns line up (default true). |
| rows | array | – | Or: the table as an array of rows (first row = header unless header is false). |
| text | string | – | The CSV / TSV / JSON / Markdown table as inline text. |
No output schema declared.
No examples provided.
markdown_table_parse Markdown table to JSON / CSV ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| as | string | – | "objects" (header → keys), "arrays" (header row first) or "csv". |
| output | string | – | 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. |
| path | string | – | Or: a path to a Markdown file (UTF-8; use this for big inputs). |
| text | string | – | The Markdown table as inline text. |
No output schema declared.
No examples provided.
meta_tags_generate Meta tags generator ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| card | string | – | X card type. Default summary_large_image. |
| description | string | – | Meta description (aim for 70–160 characters). |
| image | string | – | Share image URL (1200×630 recommended). |
| imageAlt | string | – | Alt text for the share image. |
| locale | string | – | og:locale, e.g. en_US or ar_AR. |
| output | string | – | 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). |
| siteName | string | – | Site name (og:site_name). |
| title | string | – | Page title (aim for 30–60 characters). |
| string | – | X/Twitter handle: "@name", "name" or a profile URL. | |
| type | string | – | og:type, e.g. website, article, product, profile. Default website. |
| url | string | – | Canonical page URL. |
No output schema declared.
No examples provided.
password_check Password strength 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/
| Name | Type | Req | Description |
|---|---|---|---|
| password | string | yes | The password to check (only the first 256 characters are analysed in detail). |
| showPieces | boolean | – | Include the matched pieces (they contain parts of the password). |
No output schema declared.
No examples provided.
password_generate Password & passphrase generator ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| addNumber | boolean | – | passphrase: append a number 0–99 to one random word. |
| avoidLookalikes | boolean | – | password: leave out I l 1 | O 0 o. |
| capitalize | boolean | – | passphrase: capitalise each word. |
| count | integer | – | How many to generate. |
| digits | boolean | – | password: include 0–9. |
| exclude | string | – | password: characters never to use. |
| length | integer | – | password: number of characters. |
| lower | boolean | – | password: include a–z. |
| mode | string | – | Random characters or random words. |
| requireEachSet | boolean | – | password: at least one character from every chosen set. |
| separator | string | – | passphrase: between words ("" = none, words then capitalised). |
| symbols | boolean | – | password: include symbols !#$%&*+-=?@^_~()[]{}<>.,:;/| |
| upper | boolean | – | password: include A–Z. |
| words | integer | – | passphrase: number of words. |
No output schema declared.
No examples provided.
pdf_compress Compress PDF ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| dpi | integer | – | Override the preset resolution (36-300 DPI). |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| grayscale | boolean | – | Convert pages to grayscale. |
| output | string | – | 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). |
| password | string | – | Password, if the PDF is protected. |
| preset | string | – | Quality preset. Default "balanced". |
| quality | integer | – | Override the preset JPEG quality (30-95). |
| returnBase64 | boolean | – | 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 Extract PDF 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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| output | string | – | 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). |
| pages | string | yes | Pages to keep: "1-3, 7, 10-" ("5-" = to the end; also "odd", "even", "last"). |
| returnBase64 | boolean | – | 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 List 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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The 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 Fill a PDF form ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| flatten | boolean | – | Flatten the form after filling (fields become plain page content). |
| ignoreUnknown | boolean | – | Skip names that are not in the form instead of failing. |
| output | string | – | 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). |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| values | object | yes | Field name -> value, e.g. {"name": "Sara", "agree": true, "plan": "pro", "langs": ["Arabic"]}. |
No output schema declared.
No examples provided.
pdf_from_images Images to PDF ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| images | array | yes | Images in page order: path/base64 strings, or {file, rotate}. |
| margin | number | – | Margin around each image in mm. Default 10. |
| orientation | string | – | "auto" turns the page to match each image. Ignored for "fit". |
| output | string | – | 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). |
| pageSize | string | – | Page size. Default "a4". |
| quality | string | – | Image quality / size trade-off. Default "high". |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
No output schema declared.
No examples provided.
pdf_info 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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| password | string | – | Password, for the text check on a protected PDF. |
| textCheck | boolean | – | Check which pages have a text layer (reads up to 500 pages). Default true. |
No output schema declared.
No examples provided.
pdf_merge Merge PDFs ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | PDFs to merge, in order: a path/base64 string, or {file, pages}. |
| output | string | – | 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). |
| returnBase64 | boolean | – | 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 Read PDF metadata ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| includeXmp | boolean | – | Also return the decoded XMP XML. |
No output schema declared.
No examples provided.
pdf_metadata_write Edit or strip PDF metadata ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Author. "" removes it; omit to keep it. |
| creationDate | string | – | Creation date as ISO 8601, e.g. "2026-03-14T09:30:00+03:00". "" removes it; omit to keep it. |
| creator | string | – | Creator (the app that made it). "" removes it; omit to keep it. |
| custom | object | – | Custom info fields to set; null removes one. E.g. {"Company": null}. |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| keywords | string | – | Keywords. "" removes it; omit to keep it. |
| modDate | string | – | Modification date as ISO 8601. "" removes it; omit to keep it. |
| output | string | – | 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). |
| producer | string | – | Producer (the PDF engine). "" removes it; omit to keep it. |
| removeDocumentId | boolean | – | Remove the document ID from the trailer. |
| removeXmp | boolean | – | Remove the XMP metadata stream (and page-level XMP/PieceInfo). |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| strip | boolean | – | Remove ALL metadata (other edits are ignored). |
| subject | string | – | Subject. "" removes it; omit to keep it. |
| title | string | – | Title. "" removes it; omit to keep it. |
No output schema declared.
No examples provided.
pdf_organize Organize PDF pages ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| output | string | – | 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). |
| pages | string | yes | New page order (1-based source pages): e.g. "3, 1-2, blank, 2, 5-". Pages not listed are removed; "blank" adds an empty page. |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| rotate | array | – | Optional rotations applied to pages of the new order. |
No output schema declared.
No examples provided.
pdf_page_numbers Add 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/
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Colour as hex "#rrggbb". Default #333333. |
| date | string | – | Text for {date}. Default: today in the server locale. |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| font | string | – | – |
| footer | string | – | Optional footer text on numbered pages (tokens allowed). |
| footerAlign | string | – | Footer alignment: l, c or r. |
| format | string | – | Number format with {n}, {total}, {date}, {filename}. Default "Page {n} of {total}". Empty = no number (header/footer only). |
| header | string | – | Optional header text on numbered pages (tokens allowed). |
| headerAlign | string | – | Header alignment: l, c or r. |
| margin | number | – | Distance from the page edge in points. Default 28. |
| output | string | – | 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). |
| pages | string | – | 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. |
| position | string | – | Where the number goes: t/b = top/bottom, l/c/r = left/centre/right. Default "bc". |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| size | number | – | Text size in points. Default 10. |
| skip | integer | – | Leave this many first pages without a number (e.g. 1 for a cover). Default 0. |
| start | integer | – | Number of the first numbered page. Default 1. |
No output schema declared.
No examples provided.
pdf_rotate Rotate PDF pages ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| angle | – | yes | Clockwise degrees: 90, 180, 270, or -90. |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| output | string | – | 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). |
| pages | string | – | 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. |
| returnBase64 | boolean | – | 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 Sign PDF with an 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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| height | number | – | Height in points. Default: keeps the image aspect ratio. |
| output | string | – | 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). |
| pages | string | – | Pages to sign: "last" (default), "1", "all", "1-3"… |
| removeBackground | boolean | – | Make light (paper) pixels transparent and trim to the ink. Default true. |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| signature | string | – | Signature image: local path or base64 (PNG, JPEG, WebP…). |
| texts | array | – | Optional text marks, e.g. the printed name or the date. |
| threshold | integer | – | Brightness (0-255) above which pixels become transparent. Default 210. |
| width | number | – | Width in points. Default 150 (about 5.3 cm). |
| x | number | – | Left edge in points from the left of the page (72 pt = 1 inch). Default 72. |
| y | number | – | 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 Split PDF ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| every | integer | – | For mode "every": pages per file (e.g. 2 makes 1-2, 3-4…). |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| mode | string | yes | "ranges": one PDF per range in `ranges`; "every": a new PDF every `every` pages; "single": one PDF per page. |
| output | string | – | Folder to write the PDFs into (created if missing). Default: a new folder in the server output folder. |
| ranges | string | – | 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 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/
| Name | Type | Req | Description |
|---|---|---|---|
| dpi | number | – | Resolution in dots per inch. Default 150. |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| format | string | – | Image format. Default "png". |
| output | string | – | Folder to write the images into (created if missing). Default: a new folder in the server output folder. |
| pages | string | – | 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. |
| password | string | – | Password, if the PDF is protected. |
| quality | integer | – | JPEG/WebP quality 1-100. Default 90. |
| transparent | boolean | – | Keep the page background transparent (PNG/WebP only). |
No output schema declared.
No examples provided.
pdf_to_text 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/
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| format | string | – | "text" or "markdown" (## Page N headings, reflowed paragraphs). |
| maxChars | integer | – | Cut the inline text after this many characters (the file output is never cut). |
| output | string | – | Write the text to this file (or folder ending in "/") instead of returning it inline. |
| pages | string | – | 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. |
| password | string | – | Password, if the PDF is protected. |
| perPage | boolean | – | Also return each page's text separately. |
| reflow | boolean | – | Join the lines of each paragraph and mend words split by a hyphen. |
| separators | boolean | – | Put a "——— Page N ———" line before each page. Default true. |
No output schema declared.
No examples provided.
pdf_watermark Watermark PDF ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| angle | number | – | Rotation in degrees, counter-clockwise as shown. Default 45. |
| color | string | – | Colour as hex "#rrggbb". Default #d64545. |
| file | string | yes | The PDF: a local file path (absolute, or relative to the server's --root) or base64 data (raw or a data: URI). |
| font | string | – | Font for text. |
| gap | number | – | Space between tiles in points (tile mode). Default 80. |
| image | string | – | Image watermark instead of text: a local path or base64 (PNG, JPEG, WebP, SVG…). |
| mode | string | – | "center": one stamp in the middle; "tile": repeated across the page. |
| opacity | number | – | Opacity in % (1-100). Default 25. |
| output | string | – | 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). |
| pages | string | – | 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. |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| scale | number | – | Image width as % of the page width. Default 40. |
| size | number | – | Text size in points. Default 72. |
| text | string | – | Watermark text (default "CONFIDENTIAL"). Ignored when "image" is given. |
No output schema declared.
No examples provided.
prayer_times 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/
| Name | Type | Req | Description |
|---|---|---|---|
| asr | string | – | Asr school: "shafi" (standard: Shafi'i, Maliki, Hanbali) or "hanafi". Default shafi (hanafi for Karachi-method cities). |
| city | string | – | 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… |
| date | string | – | First day, YYYY-MM-DD in the place's calendar. Default: today there. |
| days | integer | – | How many consecutive days to return. |
| highLatitudeRule | string | – | "auto" = website behaviour (recommended rule when |latitude| > 48°). |
| latitude | number | – | Latitude in degrees (−90..90). Use with longitude and timezone. |
| longitude | number | – | Longitude in degrees (−180..180). |
| method | string | – | Calculation method. Default: the city's usual method, else "mwl". |
| month | string | – | Or a whole month timetable, YYYY-MM (overrides date/days). |
| now | string | – | Reference instant (ISO 8601) for "today" and the next prayer. Default: the current time. |
| timezone | string | – | 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 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/
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | 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… |
| heading | number | – | Optional: the direction you are facing now (degrees from north) to get a turn instruction. |
| latitude | number | – | Latitude in degrees (−90..90). |
| longitude | number | – | Longitude in degrees (−180..180). |
No output schema declared.
No examples provided.
qr_generate QR code generator ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | vcard: address. |
| background | string | – | Background colour, hex (default #ffffff). |
| body | string | – | email: message body. |
| company | string | – | vcard: company. |
| ecc | string | – | Error correction: L 7%, M 15% (default), Q 25%, H 30%. A logo forces H. |
| string | – | vcard: email address. | |
| firstName | string | – | vcard: first name. |
| foreground | string | – | Module colour, hex (default #0d0f12). |
| format | string | – | Output format. |
| hidden | boolean | – | wifi: the network is hidden. |
| jobTitle | string | – | vcard: job title. |
| label | string | – | geo: optional place label (?q=). |
| lastName | string | – | vcard: last name. |
| latitude | number|string | – | geo: latitude, -90..90. |
| logo | string | – | Optional centre logo image (path or base64, max 5 MB). Covers ~22% of the code; error correction becomes H. |
| longitude | number|string | – | geo: longitude, -180..180. |
| margin | integer | – | Quiet zone in modules (default 4; under 2 may not scan). |
| message | string | – | sms: message text. |
| mode | string | – | Encoding mode. "byte" (UTF-8, what the website uses), "auto" (numeric/alphanumeric when the text allows, smaller codes), or force one. |
| output | string | – | 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). |
| password | string | – | wifi: password (ignored for open networks). |
| phone | string | – | vcard/sms/tel: phone number. |
| returnBase64 | boolean | – | Also return the output as base64 in the result (only for small files). Default false. |
| security | string | – | wifi: WPA (WPA/WPA2/WPA3, default), WEP, or nopass (open). |
| shape | string | – | Module shape. Rounded/dots also round the three finder squares. |
| size | integer | – | Image width/height in px (default 1024). |
| ssid | string | – | wifi: network name. |
| subject | string | – | email: subject. |
| text | string | – | text: any text (encoded exactly as given). |
| to | string | – | email: recipient address. |
| type | string | – | What the code holds. Default: "url" if url is given, else "text". |
| url | string | – | url: web address; "https://" is added when no scheme is given. |
| version | integer | – | QR version 1-40 (size), or 0 = smallest that fits (default). |
| website | string | – | vcard: website. |
No output schema declared.
No examples provided.
qr_read QR code reader ~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/
| Name | Type | Req | Description |
|---|---|---|---|
| image | string | yes | The 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.
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
claude mcp add s3eidat-s3eidat-tools-mcp -- npx -y s3eidat-tools-mcp
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.