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.

John's Essentials

REMOTE · API.JOHNSESSENTIALS.COM

144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth).

0 this week 95 Trust /100

Last scanned (20 hours ago)

Scores higher than 99% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Documents and Files

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
Transport & Reachability100
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 28822 tokens (~184/item across 156 items; 153 tools + 3 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 155 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
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.

  • 30 Oct 26 0
    • Stability: fail → pass ▲ security
  • 7 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 97.

  • 4 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90.

  • 2 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 84.

  • 30 Sept 26 0
    • A breaking change shipped without a version bump: still 1.2.0 ▼ security
    • “email_file” changed the type of “file”: string → array ▼ functional
    • “email_file” reworded the description of “file” cosmetic
    • “photo_face_blur” reworded the description of “manual_faces” cosmetic
    • “photo_face_blur” reworded the description of “selected_faces” cosmetic
    • “photo_meme_generator” reworded the description of “font” cosmetic
    • “photo_shadow_adder” reworded the description of “angle” cosmetic
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 0
    • “pdf_delete_pages” reworded the description of “pages” cosmetic
    • “pdf_watermark” reworded the description of “pages” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 26 Sept 26 0
    • “analyze_audio” reworded the description of “file” cosmetic
    • “analyze_video” reworded the description of “file” cosmetic
    • “media_extract_audio” reworded the description of “file” cosmetic
    • “media_merge_audio” reworded the description of “files” cosmetic
    • “media_mute_video” reworded the description of “file” cosmetic
    • “media_trim_audio” reworded the description of “file” cosmetic

    6 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

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 4 Nov 2026 · Probed https://api.johnsessentials.com/mcp/messages

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=johnsessentials.com CN=YE1,O=Let's Encrypt,C=US 3 Oct 2026 1 Jan 2027 ECDSA 256 ECDSA-SHA384 59d02ba272d0b298667b8b921613b1168e7
SANs: *.johnsessentials.com, johnsessentials.com
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.johnsessentials.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
johnsessentials.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer resource_metadata="https://api.johnsessentials.com/.well-known/oauth-protected-resource", scope="read write"

Bearer resource_metadata="https://api.johnsessentials.com/.well-known/oauth-protected-resource", scope="read write"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
www-authenticate Bearer resource_metadata="https://api.johnsessentials.com/.well-known/oauth-protected-resource", scope="read write"

Protected resource metadata

Document https://api.johnsessentials.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://api.johnsessentials.com/mcp/messages
Authorisation server https://api.johnsessentials.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.johnsessentials.com/mcp/messages Verified 200
http (plaintext) http://api.johnsessentials.com/mcp/messages HTTPS enforced 301 https://api.johnsessentials.com/mcp/messages
MCP tools · 153 exposed · ~28,494 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
analyze_audio ~71

Audio Analyzer — Analyse an audio file: duration, sample rate, bit rate, channels, codec, waveform data. [category: analyze]

NameTypeReqDescription
filestringyesInput file (MP3, WAV, AAC, OGG, FLAC, M4A, WMA, OPUS or AIFF)

No output schema declared.

No examples provided.

analyze_color_palette ~61

Color Palette Extractor — Extract the dominant colour palette from an image. [category: analyze]

NameTypeReqDescription
colorsinteger–How many dominant colours to pull out of the image.
filestringyesImage (JPG, PNG, WebP)

No output schema declared.

No examples provided.

analyze_csv ~90

CSV Analyzer — Analyse a CSV file: row/column count, data types, null counts, min/max/mean per column. [category: analyze]

NameTypeReqDescription
filestringyesInput file (CSV)
strictboolean–Files over 10,000 rows are analysed from the first 10,000 only. Switch on to get an error instead of statistics that cover part of the file.

No output schema declared.

No examples provided.

analyze_duplicate_detector ~60

Duplicate Detector — Identify duplicate or near-duplicate files in a batch upload using perceptual hashing. [category: analyze]

NameTypeReqDescription
filesarrayyes2-20 files to compare (any type). Files beyond the first 20 are silently ignored.

No output schema declared.

No examples provided.

analyze_encoding_detector ~112

Encoding Detector — Detect the character encoding of a text or HTML file. Use when accented letters, apostrophes or quotation marks arrive as garbled symbols: it identifies which character set the file was saved in (UTF-8, Windows-1252, ISO-8859-1, UTF-16 and so on). It REPORTS the encoding only — it does not convert or rewrite the file. [category: analyze]

NameTypeReqDescription
filestringyesInput file (TXT, HTML, CSV, XML)

No output schema declared.

No examples provided.

analyze_file ~48

File Analyzer — Analyse a file and return type, encoding, size, MIME type, magic bytes, and structure summary. [category: analyze]

NameTypeReqDescription
filestringyesInput file (any)

No output schema declared.

No examples provided.

analyze_file_diff ~168

File Diff — Show a line-by-line diff between two text files (file_a + file_b) or two pasted texts (text_a + text_b). Provide one complete pair. [category: analyze]

NameTypeReqDescription
file_astring–First file — TXT, CSV, JSON, XML. Send file_a AND file_b together (file mode).
file_bstring–Second file.
strictboolean–Only the first 2,000 lines of each side are compared. Switch on to get an error instead of a comparison that covers part of the files.
text_astring–The BEFORE version. Anything that appears only here is reported as removed.
text_bstring–The AFTER version. Anything that appears only here is reported as added.

No output schema declared.

No examples provided.

analyze_font_detector ~47

Font Detector — Detect fonts used in a PDF or DOCX document. Images are not supported. [category: analyze]

NameTypeReqDescription
filestringyesInput file (PDF, DOCX)

No output schema declared.

No examples provided.

analyze_grammar_check ~183

Grammar Checker — Hybrid LanguageTool + Grok grammar checker with rule citations, style-guide awareness (APA/MLA/Chicago/AP/IEEE), dialect enforcement (US/UK/CA/AU), and per-issue severity. [category: analyze]

NameTypeReqDescription
dialectstring–English dialect for spelling and grammar rules.
include_llmboolean–Adds a second pass that catches wording and context problems the rule checker cannot see. Turn off for rule-based results only, which is faster.
modestring–Keep my voice leaves your phrasing alone; Strict also flags casual or loose wording.
stylestring–Style-guide conventions to enforce (e.g. Oxford comma for APA/MLA/IEEE/Chicago, dropped for AP).
textstringyesThe text to check (max 50,000 characters).

No output schema declared.

No examples provided.

analyze_hash ~87

Hash Generator (File) — Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of an uploaded file. [category: analyze]

NameTypeReqDescription
filestring–The file to hash. Any type, of any size we accept.
textstring–Hash typed text instead of a file. Ignored if a file is attached — the file wins.

No output schema declared.

No examples provided.

analyze_image_quality ~56

Image Quality Analyzer — Measure sharpness, noise level, compression artefacts, and BRISQUE quality score of an image. [category: analyze]

NameTypeReqDescription
filestringyesInput file (JPG, PNG, WebP)

No output schema declared.

No examples provided.

analyze_image_similarity ~76

Image Similarity — Compute a perceptual similarity score between two images (pHash distance). Takes two separately-named uploads: 'file_a' and 'file_b'. [category: analyze]

NameTypeReqDescription
file_astringyesFirst image — JPG, PNG
file_bstringyesSecond image — JPG, PNG

No output schema declared.

No examples provided.

analyze_json_xml_validator ~263

JSON/XML Validator — Check that text is valid JSON or XML and tidy its layout. It answers valid true or false, and a document that is not valid is still an answer, not a failed step, so the steps after it run either way. To stop a workflow on a bad document, add an If/Else step that checks {{step_N.valid}} equals true, where N is this step's number. Then, on each step that should run only for a valid document, set Run when to true and add the If/Else step's number to its Depends On. This step passes no file on, so a step after it that needs the document must take its file from the step before this one. [category: analyze]

NameTypeReqDescription
filestring–A JSON or XML file to check — this is how a previous step hands its output over. Up to 1 MB. Send this or the text below; a file wins if both arrive.
formatstring–Leave it on automatic and the format is read from the text itself.
textstring–Up to 1 MB of valid UTF-8. Nesting deeper than 256 levels is refused rather than followed, because following it exhausts the server's stack.

No output schema declared.

No examples provided.

analyze_link_extractor ~98

Link Extractor — Extract all hyperlinks from a PDF or HTML file, or from pasted text. Other file types are scanned as raw text. [category: analyze]

NameTypeReqDescription
filestring–A PDF or HTML file to pull the links out of. Any other type is read as plain text.
textstring–Paste text or HTML to pull links out of. Ignored if a file is attached — the file wins.

No output schema declared.

No examples provided.

analyze_metadata ~48

Metadata Viewer — Extract and display all metadata from a file (EXIF, PDF info, document properties, audio tags). [category: analyze]

NameTypeReqDescription
filestringyesInput file (any)

No output schema declared.

No examples provided.

analyze_pdf_inspector ~49

PDF Inspector — Deep inspection of a PDF: page count, fonts used, annotations, form fields, embedded files. [category: analyze]

NameTypeReqDescription
filestringyesInput file (PDF)

No output schema declared.

No examples provided.

analyze_readability ~92

Readability Scorer — Calculate Flesch Reading Ease and Flesch-Kincaid Grade Level for a text. [category: analyze]

NameTypeReqDescription
filestring–Alternative: upload a .txt, .pdf, or .docx document (max 25MB).
textstring–Paste the text to score — about five words minimum. Leave blank if you are uploading a document instead.

No output schema declared.

No examples provided.

analyze_ssl ~77

SSL Checker — Check an SSL certificate for a hostname: expiry, issuer, validity, cipher suite. [category: analyze]

NameTypeReqDescription
hostnamestringyesThe site to check, e.g. example.com — just the address, with no https:// in front and no page path. A port number is ignored; 443 is always used.

No output schema declared.

No examples provided.

analyze_video ~68

Video Inspector — Inspect a video: duration, resolution, frame rate, codec, audio tracks, bitrate. [category: analyze]

NameTypeReqDescription
filestringyesInput file (MP4, MOV, AVI, MKV, WebM, WMV, FLV, 3GP or MPG)

No output schema declared.

No examples provided.

analyze_word_count ~92

Word Counter — Count words, characters, sentences, paragraphs, and reading time in a text or uploaded document (.txt/.pdf/.docx). [category: analyze]

NameTypeReqDescription
filestring–Alternative: upload a .txt, .pdf, or .docx document (max 25MB).
textstring–Paste the text to count. Leave blank if you are uploading a document instead.

No output schema declared.

No examples provided.

analyze_word_frequency ~110

Word Frequency Analyzer — Analyse word frequency distribution in a text or document file. [category: analyze]

NameTypeReqDescription
excludestring–Comma-separated, e.g. the, and, of. Capitals and spacing do not matter. Words under two letters are always ignored.
filestring–Text or document file
textstring–Direct text input. Provide either file or text.
topNinteger–Show this many of the most common words, most frequent first.

No output schema declared.

No examples provided.

chatwithyourpdf ~140

Chat With Your PDF — Read the text of the user's document — PDFs first and foremost, plus TXT/CSV/Markdown/JSON — so you can chat about it: answer questions, summarize it, or use facts from it in later steps. Business plan only. Returns up to max_chars characters. For Word files: convert with word_to_pdf first, then chat with the PDF. [category: content] [requires the business plan]

NameTypeReqDescription
filestringyesThe document to read
max_charsinteger–How much of the document to read, in characters. Anything past this is left out, and the step says so.

No output schema declared.

No examples provided.

convert_archive ~155

Archive Converter — Convert between archive formats. Input: ZIP, RAR, 7Z, GZ/TAR.GZ, TAR.BZ2, TAR.XZ, TAR, CAB, ISO — recognized by filename extension or file signature, so misnamed uploads work. Output: ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, 7Z. [category: convert]

NameTypeReqDescription
filestringyesArchive to convert — ZIP, RAR, 7Z, GZ, TAR, TAR.BZ2, TAR.XZ, CAB, ISO (max 200MB)
tostringyesThe archive format you want back. ZIP opens on every computer without extra software.

No output schema declared.

No examples provided.

convert_batch ~209

Batch Converter — Convert many files in one request and download a ZIP of the results. Auto-target rules pick a sensible output format per file (docx→pdf, heic→jpg, mov→mp4, etc.) or specify a global target like 'pdf' or a per-extension override map. Free tier supports up to 5 files; Business tier up to 50. [category: convert]

NameTypeReqDescription
filenamesarray–Not used by this tool — the names come from the uploaded files themselves. Leave it empty.
filesarrayyes200 MB combined cap. Rows that can't convert are skipped, not fatal — check _manifest.txt in the ZIP for per-row status.
targetstring–What to turn every file into. Leave it on 'auto' and we pick a sensible result for each one (Word becomes PDF, HEIC photos become JPG, MOV becomes MP4). Type a single format, like pdf, to force them…

No output schema declared.

No examples provided.

convert_chain ~235

Conversion Chain — Run a 1-5 step conversion pipeline in one job, e.g. docx → pdf → epub. Each step's engine is auto-picked from the conversion graph. Input format comes from the 'from' field when given, else magic-byte detection — ALWAYS pass 'from' for text-based inputs (csv, md, html, json): they have no magic bytes and detect as plain txt. Business tier only. [category: convert] [requires the business plan]

NameTypeReqDescription
filestringyesMax 100 MB — tighter than single-tool caps because chains amplify temp disk.
fromstring–What the file is now. Usually read from the file itself — but text files (CSV, Markdown, HTML, JSON) all look alike inside, so say which one it is.
stepsstringyesThe formats to pass the file through, in order — 1 to 5 of them. Each hop is written as {"to":"pdf"}; we choose the right engine for it. A Word file to PDF to EPUB is [{"to":"pdf"},{"to":"epub"}].

No output schema declared.

No examples provided.

convert_contact ~162

Contact Converter — Convert contact/calendar/email formats: vCard↔CSV, vCard→XLSX (vcf to excel), ICS→JSON/CSV, MSG→EML, EML→PDF. [category: convert]

NameTypeReqDescription
filestringyesParsed as the declared 'from' — bytes are never sniffed. Size caps vary by pair: 10 MB vcf/csv/ics, 25 MB eml, 50 MB msg.
fromstringyesSource format.
tostringyesTarget format. Only these pairs are valid: vcf→csv, vcf→xlsx, csv→vcf, ics→json, ics→csv, msg→eml, eml→pdf.

No output schema declared.

No examples provided.

convert_data ~171

Data Converter — Convert a data file between formats (JSON, NDJSON/JSONL, CSV, TSV, XML, YAML, TOML, INI). Upload the data file and pick a target format; the result comes back as a downloadable file (so it chains in workflows). Inline text is also accepted via a JSON-body 'input' string instead of a file. [category: convert]

NameTypeReqDescription
filestringyesThe data file to convert (max 5MB).
fromstring–Source format. Optional — inferred from the file extension when omitted. 'ndjson' (aka jsonl) is newline-delimited JSON; 'tsv' is tab-separated values.
tostringyesThe format you want back. It has to be different from what you put in.

No output schema declared.

No examples provided.

convert_document ~413

Document Converter — Office & document converter — DOCX/DOC/ODT/RTF/XLSX/XLS/ODS/CSV/PPTX/PPT/ODP/HTML/EPUB/TXT → PDF plus office round-trips (csv→xlsx, docx→odt, epub→pdf) via LibreOffice; MARKDOWN → pdf/docx/html/epub/txt via pandoc with real GFM semantics (headings, lists, tables, code fences); and DOCX/HTML/PDF → MARKDOWN (the LLM-ingestion direction — turn a document into clean GFM an agent can read; PDF via text-layer extraction); plus Jupyter notebooks (.ipynb) → pdf/html/docx/md via pandoc. Pass 'from' so the converter knows the source format. For images/audio/video use convert_file; for data-text transforms use convert_data. Capability envelope: a PDF source extracts to text/markdown only (to=md) — for editable output from a PDF use pdf_to_word / pdf_to_excel / pdf_to_text / pdf_to_images. Office conversions are same-category only (Word↔Word, Sheet↔Sheet, Slides↔Slides) plus any→pdf; cross-category conversions (e.g. Word→slides, Sheet→Word) are not supported. [category: convert]

NameTypeReqDescription
filestringyesMax 25 MB. Routed by filename extension first; the 'from' field is the fallback for synthetic/extensionless names.
fromstringyesWhat the file is now. We normally read this from the file name; set it when the file has no name or an odd one. Markdown and Jupyter notebooks always take their own route, so say so here for those tw…
tostringyesWhat you want back. PDF works from every source. Word stays Word, spreadsheets stay spreadsheets, slides stay slides — a Word file cannot become slides. A PDF source can only come back as Markdown.

No output schema declared.

No examples provided.

convert_ebook ~203

eBook Converter — Convert ebooks between formats with calibre: mobi, azw3, fb2, lit and pdf → EPUB, plus epub → mobi/azw3 for older devices. EPUB is the format modern Kindles accept for send-to-device, so →epub is the recommended direction. DRM-protected books cannot be converted. pdf→epub reflows fixed pages, so quality varies with layout complexity; epub→pdf is handled by convert_document (LibreOffice). [category: convert]

NameTypeReqDescription
filestringyesThe ebook itself. Bytes are sniffed and must match 'from' (mismatch = 400). DRM-protected books always fail.
fromstringyesSource ebook format — REQUIRED.
tostringyesThe format you want back. EPUB is what a modern Kindle accepts when you send a book to it, so it is the usual answer. Pick MOBI or AZW3 only for an older device.

No output schema declared.

No examples provided.

convert_file ~407

Universal File Converter — Convert a file between formats: image↔image (jpg/png/webp/bmp/tiff/gif/avif/ico, plus heic/svg/psd as inputs), audio↔audio (mp3/wav/ogg/opus/flac/aac/m4a/wma/aiff, plus alac=Apple Lossless delivered as .m4a), video↔video/GIF (Business gate on some edges) plus legacy flv/wmv/3gp/mpg/vob/ts/m2ts → mp4, extract audio from video (mp4/mov/mkv/webm/avi → mp3/wav/aac/m4a/ogg/flac/opus/aiff/alac), subtitles (srt↔vtt, and srt/vtt→txt), DOC/DOCX/TXT→PDF, image→PDF, comic archive CBZ→PDF. Office/document conversions (xlsx, pptx, csv→xlsx, epub, html) live in convert_document; archives in convert_archive; data formats in convert_data. [category: convert]

NameTypeReqDescription
filestringyesThe file to convert. We read its current format from the file itself, so you only need to say what you want back.
fromstring–Leave blank and we read the format from the file itself. Only set it if the file has no name or an odd one.
gif_fpsinteger–Frames per second. Higher is smoother and bigger. If the width and frame rate together are too heavy we keep the width and ease this down.
gif_widthinteger–How wide the GIF should be, in pixels. Height follows automatically. Very wide plus very smooth is capped - we keep the width you asked for and ease the frame rate down.
tostringyesThe format you want back. Apple Lossless (alac) is delivered as a .m4a file.

No output schema declared.

No examples provided.

convert_geo ~227

GPS & Map Converter — Convert between GPX, KML, KMZ and GeoJSON — the GPS-track and mapping formats used by Garmin, Strava, Google Earth and every GIS tool. Track segments, per-point timestamps, elevations and polygon holes all survive the trip. Anything that cannot survive (a polygon becoming a GPX track, an unlocated feature) is reported in the X-Conversion-Notes header rather than dropped quietly; pass strict=true to refuse instead. [category: convert]

NameTypeReqDescription
filestringyesA .gpx, .kml, .kmz or .geojson file.
fromstring–Optional. Detected from content; declare it only when the upload has no meaningful filename.
strictboolean–Stop the conversion rather than hand back a file that has lost something. Off by default: you get the result plus a note about anything that could not be carried over.
tostringyesMust differ from the detected source — gpx→gpx is a 400; format-version upgrades happen implicitly on read.

No output schema declared.

No examples provided.

convert_jpg_to_pdf ~47

JPG to PDF — Convert one or more JPG/PNG images to a PDF document. [category: convert]

NameTypeReqDescription
filesarrayyesInput files (JPG, PNG)

No output schema declared.

No examples provided.

convert_parquet ~216

Parquet Converter — Convert Apache Parquet to CSV, TSV, JSON, NDJSON or Excel — and back. Types are preserved in both directions: numbers stay numbers in JSON, blank cells become real nulls in Parquet, and identifier columns like '01924' stay text instead of losing their leading zero. Flat schemas only; nested or repeated columns are reported rather than silently flattened. [category: convert]

NameTypeReqDescription
filestringyesA .parquet file, or a .csv/.tsv/.json/.ndjson/.xlsx table to turn into Parquet.
fromstring–Optional but recommended when uploading csv/tsv/json/ndjson: those are indistinguishable by content, so declare which one it is.
sheetstring–Which worksheet to read. Leave it blank for the first one.
tostringyes'jsonl' is accepted as an alias for ndjson. One side of the pair must be parquet — table→table pairs belong to convert_data.

No output schema declared.

No examples provided.

convert_sqlite ~222

SQLite Converter — Export a SQLite database (.db/.sqlite) to CSV, JSON or Excel. A database holds many tables, so the output adapts: CSV gives one file per table (zipped when there are several), JSON gives rows as objects (keyed by table when there are several), and Excel gives ONE workbook with one worksheet per table. Pass an optional 'table' to export just one. [category: convert]

NameTypeReqDescription
filestringyesSQLite database file.
strictboolean–Stop rather than hand back a partial export. Off by default: a very large database comes back with whatever we could reach, and a note saying what was left out.
tablestring–Optional: export only this table (must match a table in the database).
tostringyesWhat you want back. A database holds several tables, so the shape follows: CSV gives one file per table (zipped if there is more than one), Excel gives one workbook with a sheet per table, JSON gives…

No output schema declared.

No examples provided.

convert_text ~174

Text Converter — Convert text/data formats: Markdown↔HTML, CSV↔JSON, JSON↔XML/YAML, Base64 and URL encode/decode. Takes 'text' + 'from' + 'to' — there is no 'conversion_type' field. [category: convert]

NameTypeReqDescription
fromstringyesWhat the text is now — or the encoding job to run (Base64 / URL encode and decode ride in this field).
textstringyesThe text/data to convert. Field name is 'text' — not 'content'.
tostringyesWhat you want back. Must differ from the source. For a Base64 or URL encode/decode, leave this on the format you want the result read as — do NOT pick plain text, which currently returns the input un…

No output schema declared.

No examples provided.

convert_unit_convert ~154

Unit Converter — Convert between units of measurement: length, weight, temperature, volume, area, speed, time, and data sizes. [category: convert]

NameTypeReqDescription
categorystringyesWhat kind of measurement this is. Pick this first — it decides which units are available.
fromstringyesThe unit you have. It must belong to the kind of measurement chosen above. Data sizes are the computing kind (1 kilobyte = 1024 bytes).
tostringyesThe unit you want. It must belong to the same kind of measurement as the one you have.
valuenumberyesThe amount to convert. Negative numbers are fine (below-zero temperatures, drops in weight).

No output schema declared.

No examples provided.

convert_url_to_pdf ~102

Webpage to PDF — Convert a live web page (URL) to PDF. Fetches the page and every asset server-side through an SSRF-guarded fetcher, inlines them, and renders offline — pass a JSON-body 'url'. JavaScript is NOT executed (static rendering), so SPAs may render sparsely. [category: convert]

NameTypeReqDescription
urlstringyesThe http(s) URL of the web page to render to PDF.

No output schema declared.

No examples provided.

convert_video ~523

Video Converter — Convert a video so it PLAYS or IMPORTS where it currently will not: a camera, phone or camcorder recording that your editing software, media player, website or social platform refuses to accept, open or upload. Converts between mp4, mov, webm, mkv, avi, and animated GIF with codec/resolution/bitrate control and TikTok/Reels/Shorts/Twitter/WhatsApp presets. Also converts legacy formats (flv, wmv, 3gp, mpg, vob, ts, m2ts) to mp4. Free tier covers mp4/mov/webm at ≤720p; mkv, avi, gif, 1080p+ and AV1 require Business. [category: convert]

NameTypeReqDescription
bitrate_kbpsinteger–Aim for a file size instead of a quality level. Setting this overrides the quality slider. Leave it alone unless you have a size you must hit.
codecstring–How the picture is compressed. Leave it on Automatic unless you know you need otherwise — a compression method the chosen format cannot carry (H.265 in a WebM, say) will fail during conversion. H.265…
crfinteger–Picture quality. Lower is better-looking and bigger; higher is smaller and rougher. 23 is the everyday setting for H.264. Each compression method reads this scale differently - left alone we pick the…
filestringyesMax 500 MB; duration ≤5 min on Free, 30 min on Business. Format is sniffed from bytes; the filename extension is the fallback when sniffing fails.
preset_namestring–Make it ready for one place in particular. Picking one sets the format, size, compression and data rate for you and ignores your choices above. Business only.
resolutionstring–How big the picture should be. 'Source' keeps the original size. Height is set and the shape is kept. 1080p and 4K need Business.
tostringyesThe format you want back. MP4 plays almost everywhere. MKV, AVI and animated GIF need Business. A GIF is made at 480p unless you set the size below.

No output schema declared.

No examples provided.

convert_word_to_pdf ~50

Word to PDF — Convert a Word document (.docx, .doc) to PDF using LibreOffice. [category: convert]

NameTypeReqDescription
filestringyesInput file (DOCX, DOC)

No output schema declared.

No examples provided.

data_to_file ~247

Save as File — Write the result of an earlier step to a real, downloadable file: .txt, .csv, .json or .md. Use after any step that produces text or data rather than a file — Color Palette Extractor, Password Generator, Photo to Text (OCR), EXIF Viewer, Scrape Page, Word Frequency, Describe Image, PDF to Text — so the result can be downloaded, emailed, zipped or converted. A list of values saved as CSV becomes a spreadsheet with a header row. [category: utility]

NameTypeReqDescription
formatstring–What kind of file to write. csv turns a list of values into a spreadsheet — a header row and one row per value — and anything it cannot tabulate becomes a single column. json is pretty-printed, and d…
namestring–File name without the extension — the extension comes from the format above. Anything over 80 characters is shortened.
textstringyesThe result to save. Point this at the earlier step whose text or data you want in the file — the colour palette, the password, the extracted text.

No output schema declared.

No examples provided.

describe_image ~102

Describe Image — Look at an image with a vision model and answer a question about it — what it shows, whether it's blurry or usable, visible text, etc. Business plan only. [category: content] [requires the business plan]

NameTypeReqDescription
filestringyesThe image to look at
questionstring–What to ask about the image. Left as it is, you get the subject, the notable details and any text visible in the picture.

No output schema declared.

No examples provided.

drive_upload ~202

Save to Google Drive — Save a finished file into the signed-in user's own Google Drive. Use as the last step of a workflow when the user asks for the result to be put in, saved to, or uploaded to their Drive. Needs their Google account to be connected on the Integrations page. Only ever writes: it cannot read, list or search anything already in their Drive. [category: utility] [requires the starter plan]

NameTypeReqDescription
filestringyesThe file to save — usually the previous step's output.
filenamestring–Optional. The name the file gets in Drive, extension included. Leave blank to keep the name it already has.
folder_namestring–Optional. We create this folder the first time and put later files in the same one. We cannot see folders you made yourself, so if you already have one with this name you will end up with two — leave…

No output schema declared.

No examples provided.

email_file ~176

Email My File — Email a finished file to the user themselves, with the file attached. It goes to the Google account they connected, so it appears in both their Sent folder and their inbox. The recipient is ALWAYS the current user — this tool cannot email anyone else and cannot send custom or user-authored content. Use ONLY when the user explicitly asks to have a result emailed to them. [category: utility]

NameTypeReqDescription
filearrayyesThe file or files to email, typically the previous step's output. Several files are zipped into one attachment, so it is always one email.
notestring–Optional one-line note to put in the email body. The mail is sent from your own connected Google account, to you — files up to 5 MB.
subjectstring–Subject line of the email.

No output schema declared.

No examples provided.

esign_place ~157

PDF E-Signature — Place signature, initial, date or text fields onto a PDF — draw or type a signature — and (Pro+) append a cryptographic ed25519 audit trail. Free tier: 3 signed documents per month. [category: sign]

NameTypeReqDescription
fieldsstringyesWhere each signature, initial, date or text box sits on the page. Build these on the PDF E-Signature page — it draws them on the document and gives you this value — then paste it here. Up to 100 plac…
filestringyesPDF to sign

No output schema declared.

No examples provided.

esign_prepare ~52

E-Sign: Prepare — Return page count and per-page point dimensions for a PDF so signature fields can be positioned by the editor. [category: sign]

NameTypeReqDescription
filestringyesInput file (PDF)

No output schema declared.

No examples provided.

files_unzip ~112

Open Archive — Open a .zip archive and hand the files inside it to the next step, as a list. Use when an earlier step produced a ZIP (PDF Thumbnails, PDF to Images, Split PDF, Extract Frames, the batch converters) and the next step works on the individual files. Converts nothing. Up to 200 files. [category: utility]

NameTypeReqDescription
filestringyesThe archive to open — normally the previous step's output, e.g. {{step_1.file_id}}.

No output schema declared.

No examples provided.

files_zip ~159

Zip Files — Bundle several files — uploads or the results of earlier steps — into ONE .zip archive, unchanged. Use when the user says zip / bundle / archive / put them all in one file, or wants several results delivered as one attachment. Converts nothing (for converting many files use convert_batch). 1-50 files. [category: utility]

NameTypeReqDescription
filesarrayyesThe files to bundle: uploaded file ids, {{step_N.files}} (everything a step that ran once per file made), or {{file_ids}} (every upload). 1-50 files.
namestring–Name for the archive, without .zip. Leave it blank and the archive is named johns-essentials- plus today's date.

No output schema declared.

No examples provided.

generate_ascii_art ~189

ASCII Art Generator — Convert text or an image to ASCII art. Mode 'text' (the default) draws the words in 'text'; mode 'image' converts 'file'. With no text and a file attached, the file is converted in either mode. [category: generate]

NameTypeReqDescription
filestring–The picture to convert, up to 10 MB. Used when Mode is Image, and also when Text is left empty; with words in Text and Mode on Text, the picture is ignored.
fontstring–Lettering style.
modestring–Draw your words as big letters, or turn a picture into characters. If you attach a picture and type nothing, picture mode is used automatically.
textstring–The words to draw. Longer than 100 characters is trimmed.
widthinteger–How many characters wide the picture is.

No output schema declared.

No examples provided.

generate_barcode ~198

Barcode Generator — Generate a barcode (Code128, EAN-13, DataMatrix, PDF417, etc.) as a PNG image. [category: generate]

NameTypeReqDescription
contentstringyesThe data to encode
heightinteger–How tall the bars are, in pixels. The width follows automatically.
showTextboolean–Print the encoded digits underneath the bars, so a cashier can key them in if a scan fails.
typestring–Which barcode standard to make. Code 128 takes any text or number; EAN-13 needs 12-13 digits and EAN-8 needs 7-8; UPC-A needs 11-12; Code 39 takes capitals and digits; ITF-14 needs 13-14 digits; Data…

No output schema declared.

No examples provided.

generate_business_card ~267

Business Card Generator — Generate a printable business card (PDF or PNG) from name, job title, company, and contact details. [category: generate]

NameTypeReqDescription
companystring–Printed under the name; omitted entirely when empty. Latin-1 only — CJK/emoji glyphs render as '.'.
emailstring–Printed verbatim in the contact block — no validation, no mailto link; empty = line omitted.
formatstring–'pdf' (default) or 'png' (300 DPI Ghostscript raster, 1050x600). Any other value silently returns the PDF.
fullNamestringyesFull name printed on the card. Field name is 'fullName' — not 'name'.
jobTitlestring–Job title. Field name is 'jobTitle' — not 'title'.
phonestring–Printed verbatim in the contact block; empty = line omitted. No formatting applied.
primaryColorstring–Hex color WITHOUT the leading '#'.
secondaryColorstring–Hex color WITHOUT the leading '#'.
templatestring–Card layout.
websitestring–Printed exactly as sent — strip 'https://' yourself if unwanted; empty = line omitted.

No output schema declared.

No examples provided.

Install

How do I install the John's Essentials MCP server?

John's Essentials is a hosted endpoint at https://api.johnsessentials.com/mcp/messages, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.johnsessentials.com

# add to Claude Code
claude mcp add --transport http com-johnsessentials-johns-essentials 'https://api.johnsessentials.com/mcp/messages'
Common questions

What is the John's Essentials MCP server?

John's Essentials is an MCP server listed in the public MCP registry as com.johnsessentials/johns-essentials. 144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth). This page covers its hosted endpoint (https://api.johnsessentials.com/mcp/messages).

Is the John's Essentials MCP server safe to use?

John's Essentials scores 95 out of 100 on VerifyMCP. 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 John's Essentials MCP server expose?

John's Essentials exposes 153 tools: pdf_compress, pdf_merge, pdf_split, pdf_rotate, pdf_protect, and 148 more. Their descriptions and schemas cost roughly 28,494 tokens of context every time the server is loaded.

Does the John's Essentials MCP server require authentication?

Yes. John's Essentials asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the John's Essentials MCP server still maintained?

John's Essentials is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.