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.

io.github.alexmeckes/gifgif

NPM · GIFGIF · SCANNED SEP 26

Fit a video or GIF to its destination's size limit at measured quality, and share a link.

Available components

61 Trust /100
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 Security94
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • 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 1 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2405 tokens (~240/item across 10 items; 10 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 Management20
  • Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 92% 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 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "gif_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the io.github.alexmeckes/gifgif MCP server?

io.github.alexmeckes/gifgif runs locally as an npm package, launched with npx -y gifgif. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · gifgif

# add to Claude Code
claude mcp add alexmeckes-gifgif -- npx -y gifgif
// .cursor/mcp.json
{
  "mcpServers": {
    "alexmeckes-gifgif": {
      "command": "npx",
      "args": [
        "-y",
        "gifgif"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "alexmeckes-gifgif": {
      "command": "npx",
      "args": [
        "-y",
        "gifgif"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add alexmeckes-gifgif -- npx -y gifgif
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "alexmeckes-gifgif": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "gifgif"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add alexmeckes-gifgif --command npx --arg -y --arg gifgif
# ~/.hermes/config.yaml
mcp_servers:
  alexmeckes-gifgif:
    command: "npx"
    args: ["-y", "gifgif"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "alexmeckes-gifgif": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "gifgif"
      ]
    }
  }
}
# add to Vellum
assistant mcp add alexmeckes-gifgif -t stdio -c npx -a -y gifgif
// mcp.json
{
  "mcpServers": {
    "alexmeckes-gifgif": {
      "command": "npx",
      "args": [
        "-y",
        "gifgif"
      ]
    }
  }
}
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.

  • 25 Sept 26 +12
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 −10
    • Known CVEs: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: fail → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Dependency health: pass → unverified ▼ functional
    • Schema quality: 297 → 240 ▲ functional
    • Stability: unverified → 0.13 ▲ functional
    • First check of Schema quality: unverified functional
    • Destructive annotations: pass → 0 functional
    • Package version: 0.3.1 → 0.3.2 functional
  • 20 Sept 26 59

    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 26 Sept 2026 · Analysed npm/gifgif@0.3.2

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 →

Install scripts 1 script
Hook Tier Command
postinstall unreviewed node scripts/fetch-encoder.mjs || true

Background: Why install scripts are a supply-chain risk →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 10 exposed · ~2,263 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
gif_delete ~49

Remove a link and its file from the share server. Anyone who has the link sees it is gone.

NameTypeReqDescription
linkstringyesThe share page or file URL, or the 10-character id.

No output schema declared.

No examples provided.

gif_doctor ~62

Check the local toolchain (native encoder, ffmpeg, ffprobe, gifsicle, which encoders and filters are present) and the share server and token. Run this first if another tool fails; without ffmpeg, optimize still works through the hosted service.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gif_frames ~169

Look at a clip. Returns a contact sheet image of evenly spaced frames with a legend mapping each cell to a timestamp, so you can pick trim points or check what happens when. Pass 'at' to get one full-size frame at a specific time instead.

NameTypeReqDescription
atstring–Return a single frame at this time instead of a sheet.
colsnumber–Grid columns (default 4).
countnumber–Number of frames in the sheet (default 12, max 64).
endstring–Only sample up to this time.
pathstringyesPath to the video or GIF.
remoteboolean–Extract frames on the configured server.
startstring–Only sample from this time onward (seconds or m:ss).

No output schema declared.

No examples provided.

gif_info ~53

Probe a video or GIF: dimensions, duration, fps, frame count, file size, codec.

NameTypeReqDescription
pathstringyesPath to the video or GIF.
remoteboolean–Inspect on the configured server.

No output schema declared.

No examples provided.

gif_job ~36

Check a background job and retrieve its completed links, or cancel it.

NameTypeReqDescription
cancelboolean––
idstringyes–

No output schema declared.

No examples provided.

gif_links ~67

List the links this token has made (newest first): page and file URLs, size, title, when each was made and when it expires. Use it to find a link to reuse, update or delete.

NameTypeReqDescription
cursorstring–From a previous call, for the next page.

No output schema declared.

No examples provided.

gif_optimize ~1,528

Fit a video or GIF to a destination's size budget at the best quality that fits, and optionally share it. A native encoder searches width, fps, palette and tolerance and scores every candidate against the source, so the result carries a measured quality (quality.dssim; under 0.01 is hard to notice). Applies every edit in one pass: trim, crop, join several clips, speed, reverse, boomerang, captions with a place and a time, blur, pixelate, zoom, colour, fades, border, rounded corners, a colour key, sound on MP4. Returns size, whether it fit, the steps tried, and with share=true a link to the finished file. Works without local ffmpeg via the hosted service (remote=true, or automatically).

NameTypeReqDescription
altstring–Alt text for the markdown/html embed.
asyncboolean–Submit a background job; use gif_job with its ID to retrieve the result.
audioboolean–Keep the sound on MP4 output (default true when the source has a track; GIF and WebP have none).
blurarray–Regions to blur, in source pixels like crop (e.g. '200x40+30+90', 'top-right', '10%,5%,30%,8%'); an optional :radius.
boomerangboolean–Forward then backward.
borderstring–A border around the picture: '8', '8,white', '12,#202020' (pixels, colour default black).
brightnessnumber–Brightness -1 to 1; 0 leaves it.
captionstring–Caption drawn over the clip, centred, with a translucent box. Needs an ffmpeg with drawtext; the hosted container has it.
captionPositionstring–Where the caption goes. Default bottom.
captionsarray–Several captions: 'text', 'text @top', 'text @bottom-left', 'text @40%,10%'; a time range last: 'text @top 2-5' (seconds or m:ss).
colorsnumber–Pin palette size 2-256. Usually leave unset; the optimizer picks.
contrastnumber–Contrast 0 to 3; 1 leaves it.
cornersnumber–Rounded corners of this radius in output pixels: transparent on GIF and WebP, black on MP4.
cropstring–left-half, right-half, top-half, bottom-half, top-left, top-right, bottom-left, bottom-right, center, left-third, center-third, right-third, WxH (centered), WxH+X+Y, or x,y,w,h. Numbers or percentage…
ditherstring–Dithering. 'none' is smallest and looks fine for flat UI recordings.
effortstring–How many encoder trials the search may spend. fast is about twice as quick, high squeezes a little more.
endstring–Trim end, seconds or m:ss.
expiresstring–How long the link lives: 1d, 7d, 30d, 90d, or never (free links last at most 90 days). Use a short one for recordings that show private things.
fadeInnumber–Fade from black over this many seconds at the start.
fadeOutnumber–Fade to black over this many seconds at the end of the finished clip.
flipstring–Mirror: h = left-right, v = top-bottom, hv = both.
forstring–Destination preset. Sets format, size budget, default width, and fps.
formatstring–Output format. Defaults to gif (the only format that animates in GitHub READMEs and most chat apps).
fpsnumber–Pin the frame rate.
grayscaleboolean–Black and white.
heightnumber–Pin the output height in px.
loopnumber–0 = loop forever (default), -1 = play once, n = loop n times.
lossynumber–Pin gifsicle lossy level 0-200. Usually leave unset.
maxstring–Size budget like '5mb' or '800kb'. Overrides the preset budget.
objectivestring–smallest (default): the smallest file whose measured quality stays within the threshold; quality: the best-scoring candidate that fits the budget, usually a larger file; fastest: the first fit.
outstring–Output path. Default: <name>.<target>.gif next to the source.
overlaystring–Image file laid over the frame: 'logo.png', 'logo.png@bottom-right', 'logo.png@10,10:25%'. Local runs only.
padstring–Pad to an aspect ratio (16:9, 1:1) or a size (800x600), optionally with a colour: '16:9:white', '1:1:#202020'. Default black. Useful when a destination crops previews.
pathstringyesSource video or GIF. Append :START-END to use only that stretch.
pathsarray–Several sources, joined end to end in this order before the recipe applies (each may carry :START-END). Use instead of path.
pixelatearray–Regions to pixelate, like blur; an optional :block size.
previewboolean–Return a contact sheet of the optimized output (default true).
qualitynumber–Max perceptual loss (DSSIM) the native encoder may trade for size. Default 0.004; 0.002 is stricter, 0.01 is looser. Under 0.01 is hard to notice.
remoteboolean–Optimize on the configured share server instead of this machine. Use when gif_doctor reports ffmpeg missing; it also happens automatically in that case when a server is configured. The result is stor…
reverseboolean–Play backwards.
rotatenumber–Rotate clockwise by 90, 180, or 270 degrees.
saturationnumber–Saturation 0 to 3; 1 leaves it, 0 is grey.
shareboolean–Upload the result to the configured share server and return a link.
speednumber–Playback speed multiplier; 2 = twice as fast, 0.5 = half.
startstring–Trim start, seconds or m:ss (e.g. '2.5' or '0:02.5').
titlestring–Title for the share page.
transparentstring–A colour to make transparent (GIF, WebP; black on MP4): '#00ff00' or '#00ff00:24' with a per-channel tolerance.
widthnumber–Pin the output width in px. Never upscaled.
zoomstring–Push in from the full frame to a region over N seconds (default 1.5), then hold: 'center:1.5', '40%x40%+10%+20%'.

No output schema declared.

No examples provided.

gif_share ~145

Upload a finished gif/mp4/webp to the share server (gifgif.dev unless configured otherwise) and get a direct URL, a share page, and ready-to-paste markdown and HTML. A link is handed out only once the file exists.

NameTypeReqDescription
altstring––
expiresstring–How long the link lives: 1d, 7d, 30d, 90d, or never (free links last at most 90 days). Use a short one for recordings that show private things.
pathstringyesFile to upload.
serverstring–Override the share server URL.
titlestring––

No output schema declared.

No examples provided.

gif_targets ~50

List the destination presets (GitHub README, PR, Slack, Discord, Notion, email, X, Linear, Jira, web) with their size budgets, default width, fps, and platform notes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

gif_update ~104

Change a link's title, alt text, or lifetime. The file behind a link never changes; to change the clip, optimize again and share the new link.

NameTypeReqDescription
altstring––
expiresstring–1d, 7d, 30d, 90d, or never, counted from now.
linkstringyesThe share page or file URL, or the 10-character id.
titlestring––

No output schema declared.

No examples provided.

Common questions

What is the io.github.alexmeckes/gifgif MCP server?

io.github.alexmeckes/gifgif is an MCP server listed in the public MCP registry as io.github.alexmeckes/gifgif. Fit a video or GIF to its destination's size limit at measured quality, and share a link. This page covers its npm package (gifgif).

Is the io.github.alexmeckes/gifgif MCP server safe to use?

io.github.alexmeckes/gifgif scores 61 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 26 September 2026. 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 io.github.alexmeckes/gifgif MCP server expose?

io.github.alexmeckes/gifgif exposes 10 tools: gif_job, gif_targets, gif_info, gif_frames, gif_optimize, and 5 more. Their descriptions and schemas cost roughly 2,263 tokens of context every time the server is loaded.

Is the io.github.alexmeckes/gifgif MCP server still maintained?

io.github.alexmeckes/gifgif is still listed as active in the MCP registry. We last reached this channel on 26 September 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 io.github.alexmeckes/gifgif MCP server under?

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