Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Convert, resize, crop, filter & composite images via the imgcli CLI (lightweight, no deps)
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
IMGCLI_BINNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"imgcli": {
"command": "npx",
"args": [
"-y",
"imgcli-mcp"
],
"env": {
"IMGCLI_BIN": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add imgcli --env IMGCLI_BIN=your-value -- npx -y imgcli-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"imgcli": {
"command": "npx",
"args": [
"-y",
"imgcli-mcp"
],
"env": {
"IMGCLI_BIN": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"imgcli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"imgcli-mcp"
],
"env": {
"IMGCLI_BIN": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
IMGCLI_BIN envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub swperb, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.2.0) llegó al registro hace 5 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, debuff
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
ImageMagick's power, ffmpeg's syntax, zero dependencies. A tiny C binary that converts, resizes, crops, filters, and composites images — PNG, JPEG, BMP, TGA, GIF, PPM, QOI — driven by an ffmpeg-style filtergraph. No system libraries; compiles anywhere a C11 compiler exists.
⚡ ~8× faster than ImageMagick on common resize/filter ops, in a 232 KB
single binary (~470× smaller) — see the benchmarks. A lightweight
alternative to ImageMagick
convertorffmpegfor still images.
# Convert + resize + filter in one pass:
imgcli -i photo.jpg -vf "scale=1024:-1,grayscale,contrast=1.2,gblur=1.5" out.png
What it does: format conversion · resize / scale · crop · pad · rotate · flip · brightness / contrast / saturation / gamma / hue · grayscale · sepia · invert · threshold · box & Gaussian blur · sharpen · Sobel edge detect · emboss · custom convolution kernels · alpha-composite overlay · draw boxes · solid fills.
Design: the same paradigm as ffmpeg — *decode → normalize to one common frame format (RGBA) → run a comma-separated filtergraph → encode by output extension.*
imgcli vs ImageMagick on an Apple Silicon Mac (single-threaded, warm cache). Reproduce with make && bench/bench.sh — see bench/RESULTS.md for the full method and caveats.
| Operation | imgcli | ImageMagick | speedup |
|---|---|---|---|
| PNG→JPEG + resize (one-shot) | 1.6 ms | 4.7 ms | 2.9× |
| Resize 1200×1200 → 300w | 6.0 ms | 51.6 ms | 8.6× |
| Grayscale 1200×1200 | 48.4 ms | 389 ms | 8.0× |
| Footprint | imgcli | ImageMagick |
|---|---|---|
| Install size | 232 KB | ~109 MB (≈470× larger) |
| Dependencies | 0 (libc only) | 17 packages |
ImageMagick is a far broader 16-bit/HDRI toolkit with 200+ formats; imgcli is a lean 8-bit pipeline that wins on speed, size, and startup — the shape that matters when an agent or script spawns one process per task.
The default build is dependency-free — a single binary that links only the system C library (libc). Decoding/encoding is handled by the bundled, public-domain stb and qoi single-header libraries, compiled directly in. Nothing to apt install, no shared libraries, no version hell.
make WEBP=1) that link those libraries.**The "zero dependencies" claim applies to the default build, and always will —
opt-in format libraries are never compiled into it.** A build that enables such
a flag is, by definition, no longer dependency-free, and that trade-off is
stated at the point you opt in.
| ffmpeg concept | imgcli equivalent |
|---|---|
AVFrame / pixfmt | every image is normalized to packed 8-bit RGBA (Image) |
| demuxer/decoder | img_load via vendored stb_image (PNG/JPEG/BMP/TGA/GIF/…) |
-vf filtergraph | name=a:b:c, name, … chain parsed in filters.c |
AVFilter | each filter mutates or replaces the current frame |
| muxer (by extension) | img_save (png/jpg/bmp/tga + a hand-written PPM writer) |
lavfi test sources | testsrc=, color=, gradient=, checker= generators |
Codecs come from the public-domain stb single-header libraries (third_party/). They're bundled, not linked, so the tool stays portable and self-contained while still reading/writing the formats the world actually uses — the same trade-off ffmpeg makes by leaning on codec libraries instead of reinventing them.
# Homebrew (macOS / Linux)
brew install swperb/tap/imgcli
nix run github:swperb/imgcli -- -y -i in.png out.jpg nix profile install github:swperb/imgcli
curl -fsSLO https://github.com/swperb/imgcli/releases/latest/download/imgcli_0.5.0_amd64.deb sudo apt install ./imgcli_0.5.0_amd64.deb
yay -S imgcli # or: paru -S imgcli
docker run --rm -v "$PWD:/work" -w /work ghcr.io/swperb/imgcli -y -i in.png out.jpg
winget install swperb.imgcli
scoop install https://raw.githubusercontent.com/swperb/imgcli/main/packaging/scoop/imgcli.json
make # produces ./imgcli make demo # generates a few sample images sudo make install # installs the binary + man page to /usr/local
An MCP server wraps imgcli so AI agents can call convert_image, probe_image, and list_filters directly — see mcp/.
imgcli [-i INPUT]... [-vf GRAPH] [-q N] [-f FMT] [-y|-n] [--json] OUTPUT
-i INPUT a file, '-' for stdin, or a generator (testsrc=WxH, color=NAME:WxH, gradient=WxH, checker=WxH). Repeat -i for compositing inputs; the first is the primary frame, the rest feed overlay. -vf GRAPH filtergraph, e.g. "scale=800:-1,grayscale,gblur=2" -q N JPEG quality 1..100 (default 90) -f FMT output format (png/jpg/bmp/tga/ppm/qoi); required when OUTPUT is '-' (stdout), an optional override for files -y / -n overwrite / never overwrite the output --out-dir D batch mode: write one output per input into D (basename kept, extension from -f or the input). Globs in -i are expanded. --fail-fast in batch mode, stop at the first failing file --json emit one machine-readable JSON result line (an array in batch) --quiet suppress the human-readable success line --dry-run validate the filtergraph + report output dims; write nothing -filters [NAME] list every filter, or just NAME's syntax (add --json for a machine-readable list) -info print input dimensions and exit -V print version -h help
OUTPUT is a file path or '-' for stdout. When piping, the result line is written to stderr so stdout carries only the encoded image bytes.
Batch mode (--out-dir) processes each input independently and keeps going on per-file errors (use --fail-fast to stop). The exit code is non-zero if any file failed.
Colours accept #rgb, #rrggbb, #rrggbbaa, 0x…, r-g-b[-a], or names (red, white, transparent, …). No commas, so they're safe inside a graph.
Geometry — scale=W:H[:nearest|bilinear|bicubic|lanczos] (-1 keeps aspect; bicubic/lanczos are high-quality separable resamplers that anti-alias on downscale and stay sharp on upscale — bilinear is the default), crop=W:H[:X:Y], pad=W:H[:X:Y[:color]], hflip, vflip, transpose=90|180|270, rotate=DEG[:color] (arbitrary angle, canvas expands).
Colour — grayscale, invert, sepia, solarize, brightness=V, temperature=V, contrast=V, saturation=V, gamma=V, hue=DEG, threshold=V, opacity=V, tint=color.
Convolution — blur=R (box), gblur=SIGMA (separable Gaussian), sharpen[=AMOUNT], edge (Sobel), emboss, convolution=K[:DIV:BIAS] (custom N×N kernel, e.g. convolution=0 -1 0 -1 5 -1 0 -1 0).
Composite / draw — overlay=X:Y[:INDEX] (alpha "over" compositing of another -i input), fill=color, drawbox=X:Y:W:H:color[:fill|thickness].
# Thumbnail, preserving aspect ratio (lanczos = best downscale quality)
imgcli -i photo.jpg -vf "scale=400:-1:lanczos" thumb.png
imgcli -i photo.jpg -vf "saturation=0.6,contrast=1.15,gblur=1" look.jpg
imgcli -i page.png -i logo.png -vf "opacity=0.6,overlay=24:24" out.jpg
imgcli -i sticker.png -vf "rotate=30:transparent" rotated.png
imgcli -i testsrc=640x480 card.png
curl -s https://example.com/in.png | imgcli -i - -vf "scale=800:-1" -f jpg - > out.jpg
imgcli -i "photos/*.jpg" --out-dir thumbs -vf "scale=400:-1:lanczos" -f png
imgcli is built to be a reliable tool in an automated pipeline: one self-contained binary, no dependencies, deterministic, non-interactive, and machine-readable. See AGENTS.md for a token-economical recipe sheet.
# Always pass -y (don't prompt) and --json (parseable result) in automation:
imgcli --json -y -i in.jpg -vf "scale=512:-1" out.png
-y; one process per conversion.--json for results, --quiet to silence chatter; stable exit codes (0 ok, 1 runtime error, 2 usage error).imgcli --json -info -i file.jpg.imgcli decodes untrusted image files in C, so memory safety is taken seriously. The codebase has been audited against the OWASP Top 10, common C/CWE classes, and ffmpeg's historical vulnerability classes. Highlights:
_FORTIFY_SOURCE, stack protector, PIE/RELRO, format warnings), ASan/UBSan (make asan), and a fuzz harness (make fuzz).Full threat model, OWASP/CWE mapping, ffmpeg-CVE-class analysis, and dependency policy: [SECURITY.md](SECURITY.md).
src/image.{h,c} Image (RGBA frame) + load/save (stb glue, PPM writer)
src/filters.{h,c} filtergraph parser + every filter + registry src/source.{h,c} synthetic input generators src/util.{h,c} colour / size parsing src/main.c CLI argument handling (incl. --json output) third_party/ vendored stb_image.h, stb_image_write.h (public domain) fuzz/ libFuzzer harness for the decode -> filtergraph path AGENTS.md token-economical usage guide for
Solo se muestra el principio; lee el resto en el repo