(Work in progress). Library for Amiga 68k that works in conjunction with a host based MCP server to facilitate AI assisted SW development.
MCPpedia last refreshed this data
Amiga_mcp is an MCP server that (Work in progress). Library for Amiga 68k that works in conjunction with a host based MCP server to facilitate AI assisted SW development. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 88/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"amiga-dev": {
"url": "http://localhost:3000/mcp",
"type": "streamable-http"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A cross-development environment for Commodore Amiga (68k) that connects a modern host machine to an emulated (or real) Amiga via serial, providing live debugging, memory inspection, variable editing, remote execution, and full MCP integration
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'Pillow' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
Pillow JPEG2000 tiled decode retains a growing scratch buffer and can be used for denial of service
### Summary `src/libImaging/Jpeg2KDecode.c:853` accumulates `total_component_width` across every tile in a JPEG2000 image instead of recomputing it per tile. That accumulated value is then used in the `tile_bytes` calculation at `src/libImaging/Jpeg2KDecode.c:868`, which can make the decoder grow `state->buffer` via `realloc` at `src/libImaging/Jpeg2KDecode.c:876` up to roughly one full image's decompressed size even when each tile is small. A crafted tiled JPEG2000 file can therefore force subs
Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()
### Summary `PdfParser.PdfStream.decode()` in Pillow's `PdfParser.py` calls `zlib.decompress()` with the `bufsize` parameter set to the value of the PDF stream's `Length` field, without any upper bound on the actual decompressed output size. Python's `zlib.decompress()` `bufsize` argument is an *initial output buffer hint*, not a maximum size limit — the function will expand memory until the full decompressed result is produced. A crafted PDF containing a FlateDecode-compressed stream decompress
Pillow TGA RLE encoder can serialize up to ~57 KB of adjacent heap data into generated images
### Summary Pillow's TGA RLE encoder reads past its row buffer when saving a mode `"1"` image. Adjacent process heap bytes can be copied into the generated TGA file. The bug is reachable through the public save API: ```python im.save(out, format="TGA", compression="tga_rle") ``` Older affected Pillow versions use the equivalent public option `rle=True`. For mode `"1"`, Pillow allocates a packed row buffer of `ceil(width / 8)` bytes, but `ImagingTgaRleEncode()` treats the row as one full byt
Pillow: Out-of-bounds read via attacker-controlled row stride on Pillow's mmap path (McIdas AREA files)
## Summary When Pillow loads an uncompressed image whose tile uses the `raw` codec and a mode in `Image._MAPMODES`, and the image was opened **from a filename**, it memory-maps the file and builds the image's row pointers directly into the mapping via `PyImaging_MapBuffer` (`src/map.c`). The per-row spacing (`stride`) is taken from the tile arguments. `map.c` validates `offset + ysize*stride <= buffer_len` but **never checks that `stride` is at least the natural row width `xsize * pixelsize`**.
PYSEC-2026-3454
Pillow is a Python imaging library. Prior to 12.3.0, Pillow's public rank-filter API can trigger a native heap out-of-bounds write when given a very large odd filter size because ImageFilter.RankFilter.filter() calls image.expand(size // 2, size // 2) before rank-filter size validation and ImagingExpand() computes output dimensions with unchecked signed int arithmetic. This issue is fixed in version 12.3.0.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in developer-tools
Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Amiga_mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A cross-development environment for Commodore Amiga (68k) that connects a modern host machine to an emulated (or real) Amiga via serial, providing live debugging, memory inspection, variable editing, remote execution, and full MCP integration with Claude Code.

Brew-style installer — fetches the source, installs the Python host server, pulls the m68k Docker cross-compiler, builds the bridge daemon + examples, and launches the web UI on http://localhost:3000. Re-running pulls the latest commit and rebuilds in place.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/geekychris/amiga_mcp/main/scripts/install.sh | bash
Windows (PowerShell):
iwr -useb https://raw.githubusercontent.com/geekychris/amiga_mcp/main/scripts/install.ps1 | iex
The installer requires git, python>=3.10, and Docker. On mac/Linux you can opt into auto-install of missing CLI tools with AMIGA_MCP_AUTO_INSTALL=1. Docker Desktop on macOS/Windows needs a GUI install regardless.
What it does NOT install: FS-UAE itself (you need a Kickstart ROM — see FS-UAE Emulator Setup). The optional patched fs-uae fork with the HTTP debugger is opt-in via AMIGA_MCP_BUILD_PATCHED=1 (Linux + macOS). DevBench works fine with stock fs-uae either way; the patched build unlocks the FS-UAE tab in the Web UI and the amiga_fsuae_* MCP tools.
Knobs (env vars before invoking):
| Variable | Default | Meaning |
|---|---|---|
AMIGA_MCP_SRC | $HOME/.amiga-devbench/src | Where to clone the repo |
AMIGA_MCP_REF | main | Git ref to check out |
AMIGA_MCP_REPO | https://github.com/geekychris/amiga_mcp.git | Remote |
AMIGA_MCP_BUILD | 1 | Build examples via Docker (0 to skip) |
AMIGA_MCP_START | 1 | Launch web UI in background (0 to install only) |
AMIGA_MCP_OPEN | 1 | Open browser when ready (0 to suppress) |
AMIGA_MCP_AUTO_INSTALL | 0 | (mac/Linux) 1 to brew/apt/dnf install missing deps |
AMIGA_MCP_BUILD_PATCHED | 0 | (mac/Linux) 1 to clone+build the patched fs-uae fork into ~/.amiga-devbench/fs-uae. Combine with AMIGA_MCP_AUTO_INSTALL=1 to also install the ~10 system libs it needs. Takes ~10 min. |
[emulator] binary in devbench.toml accepts the literal "auto" (default). When auto, devbench searches in order:
$AMIGA_MCP_FSUAE_BIN env var~/.amiga-devbench/fs-uae (installed by AMIGA_MCP_BUILD_PATCHED=1)/tmp/fsuae-src/fs-uae (default output path of the patched fork's build.sh)~/code/fsuae_remote_patch/fs-uae (common dev checkout)fs-uae on PATH (stock build from Homebrew / apt / etc.)It prefers the patched build when found (probed by scanning the binary for the fs-uae-rpc service string). Set binary to an explicit path to pin a specific build. Check /api/emulator/status (patched: true|false) or the devbench startup log to confirm which one was selected.
The web UI runs in the background under $HOME/.amiga-devbench/run/devbench.pid with logs in $HOME/.amiga-devbench/logs/. Stop with kill $(cat ~/.amiga-devbench/run/devbench.pid) (or Stop-Process on Windows).