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.

Ruah

NPM · RUAH-MCP

On-device image tools: background removal, compression, resize, crop, AI upscale, metadata removal.

Available components

68 Trust /100

Last scanned (3 hours ago)

Scores higher than 35% of npm servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security99
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 44 of 165 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2062 tokens (~343/item across 6 items; 6 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 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 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 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.

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.

  • 3 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 53

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/ruah-mcp@0.1.1

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 →

Dependencies 165 packages
Packages resolved 165
Stale 44
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 6 exposed · ~2,062 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
compress ~318

Make an image file smaller with little visible quality loss, on-device (same encoders and defaults as ruah.tools). Saves a new file and reports the size before and after; the original is never changed. Formats: keep = same format as the input; webp = usually the smallest and keeps transparency; avif = smaller still, slower to encode; jpeg = photos only, transparency becomes white; png = lossy palette compression that keeps transparency (or lossless=true for exact colours). Prefer webp unless the user needs a specific format. This is also the tool for converting between formats ("convert to WebP/AVIF/JPG/PNG"): set `format`. To change the pixel dimensions, use `resize` instead (it can change the format in the same step).

NameTypeReqDescription
formatstring–Output format: keep = same as the input; webp = usually smallest, keeps transparency; avif = smaller still, slower; jpeg = photos only, transparency becomes white; png = keeps transparency. Default k…
input_pathstringyesImage file to compress. Absolute, ~/…, or relative to the working directory.
losslessboolean–png only: keep exact colours (bigger files).
output_pathstring–Where to save. Default: "<name>-compressed.<ext>" next to the input. Existing files are never overwritten.
qualityinteger–1–100 for webp/avif/jpeg. Default 80 (visually near-identical, much smaller).

No output schema declared.

No examples provided.

crop ~481

Cut an image down to an aspect ratio or an exact region, and/or turn it by quarter turns or mirror it, on-device (same tool as ruah.tools/crop: whole pixels moved, never resampled). aspect_ratio keeps the largest centred area of that shape (e.g. "1:1" for a square profile picture, "16:9" for a video thumbnail, "4:5" for a portrait post). box keeps an exact region, in pixels of the input as it is shown (upright). rotate and the flips work alone or together with either. Saves a new file and reports which region of the input it kept; the original is never changed. To change the pixel size use `resize`; to change only the format or file size use `compress`.

NameTypeReqDescription
aspect_ratiostring–Width:height of the result, e.g. "1:1", "4:5", "3:2", "16:9". Keeps the largest centred area of that shape (after rotate). Give this or box, not both.
boxobject–Exact region to keep, in pixels of the input as shown (upright), measured before rotate and flips. Give this or aspect_ratio, not both.
flip_horizontalboolean–Mirror left↔right (after rotating).
flip_verticalboolean–Mirror top↔bottom (after rotating).
formatstring–Output format: keep = same as the input; webp = usually smallest, keeps transparency; avif = smaller still, slower; jpeg = photos only, transparency becomes white; png = keeps transparency. Default k…
input_pathstringyesImage file to crop. Absolute, ~/…, or relative to the working directory.
losslessboolean–png only: keep exact colours. Default true; false makes a smaller palette PNG.
output_pathstring–Where to save. Default: "<name>-crop.<ext>" next to the input. Existing files are never overwritten.
qualityinteger–1–100 for webp/avif/jpeg. Default 90, like the web crop tool.
rotateinteger–Turn clockwise by this many degrees: 90, 180 or 270 (-90 turns anticlockwise). Default 0.

No output schema declared.

No examples provided.

remove_background ~189

Cut the main subject out of a photo and make the background transparent (on-device AI — the image never leaves this computer). Saves a transparent PNG and returns its path plus a small preview. Use for "remove the background", "cut out", "transparent background", "누끼", product and profile photos. The PNG is lossless and large; to make it smaller, pass it to `compress` with format webp or png (jpeg cannot be transparent). The first call downloads a ~98 MB model once.

NameTypeReqDescription
input_pathstringyesImage file to process (jpg, png, webp, avif, gif, tiff; heic on macOS). Absolute, ~/…, or relative to the working directory.
output_pathstring–Where to save the PNG. Default: "<name>-cutout.png" next to the input. Existing files are never overwritten.

No output schema declared.

No examples provided.

resize ~355

Change an image's pixel dimensions, keeping its proportions, on-device (same high-quality resampler and encoders as ruah.tools). Give exactly one of max_side (the longest side in pixels — e.g. 1920 for web pages, 1080 for social posts, 640 for thumbnails) or percent. It never enlarges unless allow_upscale is true. Saves a new file and reports the size before and after; the original is never changed. The output is also compressed with the same format/quality options as `compress`, so "make it 800px and WebP" is one call.

NameTypeReqDescription
allow_upscaleboolean–Allow max_side to make the image larger than the original. Default false.
formatstring–Output format: keep = same as the input; webp = usually smallest, keeps transparency; avif = smaller still, slower; jpeg = photos only, transparency becomes white; png = keeps transparency. Default k…
input_pathstringyesImage file to resize. Absolute, ~/…, or relative to the working directory.
losslessboolean–png only: keep exact colours (bigger files).
max_sideinteger–Fit inside this many pixels on the longest side.
output_pathstring–Where to save. Default: "<name>-resized.<ext>" next to the input. Existing files are never overwritten.
percentnumber–Scale to this percentage of the original (1–100; to enlarge, use max_side with allow_upscale).
qualityinteger–1–100 for webp/avif/jpeg. Default 80 (visually near-identical, much smaller).

No output schema declared.

No examples provided.

strip_metadata ~257

Remove hidden metadata from an image before sharing it, on-device (same cleaner as ruah.tools): EXIF (GPS location, camera and device, date taken), XMP, IPTC, comments, embedded thumbnails and extra data such as motion-photo video. JPEG and PNG are cleaned losslessly — only the image data and its display settings (colour profile, orientation) are copied, not re-encoded — so the photo looks exactly the same. Other formats (HEIC from an iPhone, AVIF, GIF, …) are rebuilt from their pixels with no metadata at all: WebP stays WebP, images with transparency become PNG, photos become JPEG (quality 92). Saves a new file; the original is never changed. The result lists what was removed (e.g. a GPS location) and what is left — no need to check with other tools. Use for "remove EXIF", "strip GPS / location", "clean metadata before posting".

NameTypeReqDescription
input_pathstringyesImage file to clean. Absolute, ~/…, or relative to the working directory.
output_pathstring–Where to save. Default: "<name>-clean.<ext>" next to the input. Existing files are never overwritten.

No output schema declared.

No examples provided.

upscale ~462

Enlarge an image 2× or 4× with on-device AI super-resolution (the same models as ruah.tools/upscale — the image never leaves this computer). Unlike `resize`, it redraws detail and crisp edges instead of stretching pixels into blur. Made for small or low-resolution images: icons, thumbnails, old web images, small product shots. Saves a new file and returns its path plus a small preview; the original is never changed. The result is limited to 16.8 megapixels (4096×4096): ×4 fits inputs up to about 1000×1000, ×2 up to about 2000×2000. To make an already large photo bigger, use `resize` with allow_upscale. Time grows with the output: small images take seconds, ×4 of 1000×1000 a minute or more. Transparency is kept: a transparent logo, icon or cut-out comes back transparent, with no dark fringe (save as png, webp or avif to keep it). The first ×2 call downloads an 8 MB model once, the first ×4 call 55 MB.

NameTypeReqDescription
formatstring–Output format: keep = same as the input; webp = usually smallest, keeps transparency; avif = smaller still, slower; jpeg = photos only, transparency becomes white; png = keeps transparency. Default k…
input_pathstringyesImage file to upscale (jpg, png, webp, avif, gif, tiff; heic on macOS). Absolute, ~/…, or relative to the working directory.
losslessboolean–png only: keep exact colours. Default true; false makes a smaller palette PNG.
output_pathstring–Where to save. Default: "<name>-upscaled-x2.<ext>" (or -x4) next to the input. Existing files are never overwritten.
qualityinteger–1–100 for webp/avif/jpeg. Default 90, like the web upscaler.
scale––2 = twice the width and height (default — quicker, and enough for most images); 4 = four times, for genuinely tiny sources.

No output schema declared.

No examples provided.

Install

How do I install the Ruah MCP server?

Ruah runs locally as an npm package, launched with npx -y ruah-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 · ruah-mcp

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

What is the Ruah MCP server?

Ruah is an MCP server listed in the public MCP registry as tools.ruah/ruah-mcp. On-device image tools: background removal, compression, resize, crop, AI upscale, metadata removal. This page covers its npm package (ruah-mcp).

Is the Ruah MCP server safe to use?

Ruah scores 68 out of 100 on VerifyMCP. We found no known CVEs affecting 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 Ruah MCP server expose?

Ruah exposes 6 tools: remove_background, compress, resize, crop, upscale, strip_metadata. Their descriptions and schemas cost roughly 2,062 tokens of context every time the server is loaded.

Is the Ruah MCP server still maintained?

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

Ruah declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.