Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Segment Anything on CPU for agents: cut out objects, find every object, export masks and outlines.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.
터미널에서 이 명령어를 실행하세요
브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 skulitom 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.0)은 13일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 MCPB도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Zendesk
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
Zendesk MCP Pack — tickets, users, organizations via OAuth.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Segment Anything (SAM) on your CPU, for AI agents and scripts. Maskbolt is one Rust binary: an MCP server that lets an agent open an image, find every object or click one, look at numbered previews, fix mistakes, and export cutouts, outlines and masks; and a CLI for the same jobs in one command. No Python, no GPU.
Download the archive for your computer from the latest release: maskbolt-v0.1.0-x86_64-pc-windows-msvc.zip, maskbolt-v0.1.0-x86_64-unknown-linux-gnu.tar.gz (glibc 2.35 or newer), maskbolt-v0.1.0-aarch64-apple-darwin.tar.gz or maskbolt-v0.1.0-x86_64-apple-darwin.tar.gz. Check it against the release's SHA256SUMS, extract it and put maskbolt (maskbolt.exe on Windows) on your PATH; maskbolt version prints maskbolt 0.1.0. Each archive also holds the licence, THIRD_PARTY.txt and THIRD_PARTY_NOTICES.md (the licence texts of the Rust dependencies in that build). Or build it with Rust 1.89 or newer:
cargo install --git https://github.com/skulitom/Maskbolt --tag v0.1.0 --locked
Maskbolt is not on crates.io.
The first run downloads the model into a user cache folder and checks its SHA-256:
| Model | Flag | Download | Licence |
|---|---|---|---|
| SAM ViT-B (Meta) | default, --model vit-b | 375 MB | Apache-2.0 |
| MobileSAM (TinyViT) | --model tiny | 41 MB | Apache-2.0 |
Cache folder: %LOCALAPPDATA%\maskbolt\models on Windows, $XDG_CACHE_HOME/maskbolt/models or ~/.cache/maskbolt/models elsewhere; set MASKBOLT_MODEL_DIR to use another. maskbolt fetch downloads now. Maskbolt keeps the checked .pth next to the converted safetensors and records the converted file's SHA-256 in .safetensors.sha256; every load re-checks it and rebuilds the file from the .pth if it does not match. Several Maskbolt processes can share the folder (unique temp names, atomic renames). Disk use per model is the checkpoint plus the converted file (ViT-B about 750 MB, MobileSAM about 81 MB). Minimum Rust: 1.89.
maskbolt cutout examples/chelsea.png --point 200,150 --out cat.png maskbolt cutout examples/coffee.png --point 300,225 --level largest --fill-holes --out cup-set.png maskbolt cutout photo.jpg --point 410,220 --exclude 380,300 --box 300,120,520,340 --out thing.png maskbolt find examples/corn.png --out kernels.json --overlay kernels.png maskbolt find examples/corn.png --tiles 400 --fill-gaps --out kernels.json --overlay kernels.png maskbolt find examples/bed.png --grid 12 --min-area 0.01 --max-area 0.3 --drop-hole-views \ --out offcuts.json --svg offcuts.svg --mm-per-px 0.5 maskbolt mcp --root C:\work\images maskbolt version
Outputs that already exist are refused unless you pass --force; the input image is never overwritten. One find uses at most 64 tiles and a 48x48 grid; past that it says how many tiles your settings give, about how long they would take, and which tile size fits. A tiled find has no whole-image pass: objects larger than about a third of a tile are dropped, so run a plain find first for big objects. Images are recognised by their content, not their extension, EXIF orientation is applied, and the limit is 100 megapixels.
--level: best (default, highest predicted IoU), smallest (a part), middle (the object), largest (the object with what it holds). find prints a JSON report (counts, drop reasons, timings, what is still uncovered).
{"mcpServers": {"maskbolt": {"command": "maskbolt", "args": ["mcp", "--root", "C:\\work\\images"]}}}
maskbolt skill with the loop below. It needs maskbolt on PATH (see Install):claude plugin marketplace add skulitom/Maskbolt claude plugin install maskbolt@maskbolt
or, inside Claude Code 2.1.275 or later, in one step: /plugin install maskbolt --marketplace skulitom/Maskbolt.
maskbolt-windows-x64.mcpb from the release, double-click it (or Settings > Extensions > Advanced settings > Install Extension) and choose your image folder.io.github.skulitom/maskbolt, with the Windows bundle and its SHA-256./data and keep the model in a volume:docker build -t maskbolt https://github.com/skulitom/Maskbolt.git docker run -i --rm -v "$PWD:/data" -v maskbolt-models:/cache maskbolt
As an MCP server: {"command": "docker", "args": ["run", "-i", "--rm", "-v", "/path/to/images:/data", "-v", "maskbolt-models:/cache", "maskbolt"]}. The server runs as user 10001, so on Linux the folder must be writable by that user for exports. docker run --rm maskbolt version runs the CLI.
Long tiled finds take minutes: the plugin gives Maskbolt's tools a 10-minute timeout; other clients may stop waiting sooner (see Limits).
Tools: maskbolt_open, maskbolt_find, maskbolt_click, maskbolt_view, maskbolt_remove, maskbolt_gaps (add: true clicks the candidates), maskbolt_fill_holes, maskbolt_export. Find and view replies include a numbered PNG; click replies include a zoom on the new mask. The server reads and writes only inside --root (default: the folder it starts in; it refuses to start when that is a drive or file-system root or your home folder). Paths are checked before any file access: UNC and device paths (\\server\share, \\?\, \\.\, //host), other drives and anything .. takes outside the root are refused with one message. Exports never replace an existing file unless the call passes overwrite: true, and never replace the open image. View replies give image_x = region.x + preview_x / scale; previews are at most 1568 px on the long side. On first use the model downloads in the background; maskbolt_open says its size and asks to be called again if it is not done within 25 s.
The loop that works: open; find (add tile: 400 for small or dense objects) or click; view (zoom with region); remove wrong masks; click missed ones; gaps with add: true when replies list uncovered patches; export.
| Step | SAM ViT-B | MobileSAM (--model tiny) |
|---|---|---|
| Load model | 0.2 s | 0.05-0.2 s |
| Encode one image (any size; SAM works at 1024 px) | 6.3-6.8 s | 4.2-4.3 s |
| One click (decode + upsample the three masks) | 0.11-0.12 s | 0.13-0.14 s |
cutout on chelsea.png, whole command | 6.8 s, 2.0 GB peak | 5.1 s, 0.5 GB peak |
find corn.png 1200x1198, 32x32 grid | 30.8 s wall (23.5 s after encode), 228 masks, 3.3 GB peak | 29.4 s wall, 234 masks, 3.0 GB peak |
find --tiles 400 (25 tiles, 16x16 each) | 221 s wall, 247 masks, 7.0 GB peak | not measured |
find --tiles 400 --fill-gaps | 246 s wall, 256 masks | not measured |
Tiles encode 4 at a time (MASKBOLT_ENCODE_THREADS, default 4; each holds about 1.2 GB at its peak; 1 gives about 3.3 GB peak and 332 s for the tiled corn run). Prompts decode on up to 16 threads (MASKBOLT_DECODE_THREADS). For comparison, the Node prototype (8-bit ONNX) took 199 s for the 32x32 corn run and 416 s for the tiled one.
level, extra include/exclude points, and fill_holes.simplify_px in MCP exports); edges move by up to that tolerance. Coordinates are image pixels from the top-left corner (pixel x covers [x, x+1]).Maskbolt runs on your computer; its only network request is the one-time model download. Privacy
MIT. Model weights: Apache-2.0 (Meta's SAM; MobileSAM). src/sam_decoder.rs is adapted from candle (MIT OR Apache-2.0); candle's licence texts are in THIRD_PARTY.txt. Release archives and the MCPB bundle add THIRD_PARTY_NOTICES.md with the licence texts of every Rust dependency in that build. Releasing: see mcpb/PUBLISHING.md.