
Product
Microsoft Teams Notifications Are Now Available in Socket
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.
All-in-one MCP server for visual captures: terminal, code, browser, markdown, diffs, HTML, and PDF — via Playwright
All-in-one MCP server for visual captures.
Terminal · Code · Browser · Markdown · Diff · HTML · PDF · GIF
One server. 13 tools. Real fidelity. Zero juggling.
Generate screenshots of terminals, code, web pages, markdown, diffs, PDFs, and GIF animations — all through a single MCP server. No more juggling 4 different MCP servers for your visual capture needs.
| Tool | Description |
|---|---|
capture_terminal | Terminal output with syntax-colored prompts (auto-detects real terminal theme) |
capture_code | Syntax-highlighted code via Shiki (50+ languages, 27 themes) |
capture_browser | Full-page or viewport screenshots (uses system Chrome profile when available) |
capture_file | File → auto-detected language → highlighted screenshot |
capture_markdown | Rendered markdown as a styled document |
capture_html | Arbitrary HTML snippet rendered as image |
capture_diff | Git diffs with green additions / red deletions |
capture_pdf | URL → PDF document |
capture_batch | Batch capture multiple items in one call |
create_gif | Animated GIF from multiple screenshots |
create_sequence | Side-by-side animated sequence |
capture_to_document | Multi-section markdown document render |
snapmcp-hint | Server capability hints for MCP clients |
./captures in your current project, not an isolated directorySNAPMCP_SSRF_PROTECTION=true)# Install globally
npm install -g snapmcp
# Start the server
snapmcp
Or run a quick health check:
# Run the interactive setup wizard
snapmcp init
# Check system readiness
snapmcp doctor
# Generate test captures
snapmcp test
Add to your ~/.claude/claude.json:
{
"mcpServers": {
"snapmcp": {
"command": "npx",
"args": ["-y", "snapmcp"],
"env": {
"SNAPMCP_DIR": "./captures",
"SNAPMCP_THEME": "nord"
}
}
}
}
Add to your opencode.json:
{
"mcpServers": {
"snapmcp": {
"command": "npx",
"args": ["-y", "snapmcp"],
"env": {
"SNAPMCP_DIR": "./captures",
"SNAPMCP_FORMAT": "jpeg",
"SNAPMCP_QUALITY": "95"
}
}
}
}
Add to VS Code settings (settings.json → cline.mcpServers):
{
"mcpServers": {
"snapmcp": {
"command": "npx",
"args": ["-y", "snapmcp"],
"env": {
"SNAPMCP_DIR": "./captures",
"SNAPMCP_FORMAT": "jpeg"
}
}
}
}
docker run -i --rm \
-e SNAPMCP_DIR=/captures \
-e SNAPMCP_THEME=nord \
-v /path/to/output:/captures \
ghcr.io/reeinharddd/snapmcp
SnapMCP ships with a full CLI beyond the MCP server:
snapmcp — Start the MCP server
snapmcp init — Interactive setup wizard
snapmcp doctor — Health check for all dependencies
snapmcp test — Generate test captures (terminal + browser)
snapmcp --help — Show available tools and version
snapmcp initInteractive wizard that:
snapmcp doctorRuns 7 checks:
snapmcp testGenerates sample captures to verify everything works:
captures/test-terminal.png — terminal screenshotcaptures/test-code.png — code screenshotEnvironment variables for the MCP server:
| Variable | Default | Description |
|---|---|---|
SNAPMCP_DIR | ./captures | Output directory for captures |
SNAPMCP_THEME | auto-detected | Syntax theme (27 built-in themes + auto-detected terminal) |
SNAPMCP_FORMAT | png | Output format (png, jpeg) |
SNAPMCP_QUALITY | 90 | JPEG quality (1-100) |
SNAPMCP_PADDING | 32 | Content padding in pixels |
SNAPMCP_SHADOW | none | Drop shadow (none only; legacy values ignored) |
SNAPMCP_WINDOW_CHROME | false | macOS-style title bar frame |
SNAPMCP_BORDER_RADIUS | 0 | Window corner radius |
SNAPMCP_BADGE | false | Footer badge |
SNAPMCP_LOG_FILE | — | Audit log file path |
SNAPMCP_CHROME_EXECUTABLE | — | Path to Chrome/Chromium binary |
SNAPMCP_CHROME_CHANNEL | — | Chrome channel (stable, beta, dev, canary) |
SNAPMCP_CHROME_PROFILE | — | Chrome profile directory name |
SNAPMCP_ALLOWED_PATHS | (deny-all) | Comma-separated allowed file paths for capture_file |
SnapMCP detects your real environment for authentic captures.
Terminal auto-detection (in priority order):
| Source | Detection method |
|---|---|
| Kitty | kitty.conf (foreground, background, tab_bar_style) |
| Gnome Terminal | dconf /org/gnome/terminal/legacy/profiles:/ |
| Alacritty | alacritty.toml / alacritty.yml (colors.*) |
| WezTerm | wezterm.lua (background detection) |
| Xfce4 Terminal | xfce4/terminal/terminalrc |
| LXTerminal | lxterminal.conf |
| COLORFGBG | Environment variable fallback |
| OS Theme | gsettings dark mode detection |
Browser auto-detection (in priority order):
SNAPMCP_CHROME_EXECUTABLE env vargoogle-chrome, chromium-browser; macOS: /Applications/Google Chrome.app; Windows: %LOCALAPPDATA%\Google\Chrome)which / where PATH lookup| Feature | Description |
|---|---|
| SSRF Protection | Blocks private/internal IP ranges (opt-in via SNAPMCP_SSRF_PROTECTION=true). When enabled, blocks 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc. |
| File Allowlist | SNAPMCP_ALLOWED_PATHS defaults to deny-all when unset; only explicitly allowed paths can be captured |
| Path Traversal | Prevents ../ escapes, symlink traversal, and null byte injection |
| Input Limits | Max URL length 5KB, max content 1MB, max GIF frames 100 |
| Audit Log | Optional structured JSON log file with timestamped events |
| Chromium Sandbox | Sandbox availability checked at startup |
27 built-in Shiki themes:
dracula, one-dark-pro, nord, tokyo-night, catppuccin-mocha, catppuccin-latte, ayu-dark, ayu-light, vitesse-dark, vitesse-light, min-dark, min-light, poimandres, rose-pine, rose-pine-moon, rose-pine-dawn, slack-dark, slack-ochin, snazzy-light, github-dark-dimmed, github-light, one-light, solarized-light, solarized-dark, material-theme, material-theme-lighter, material-theme-ocean
captures/
├── test-terminal.png # Terminal output with real detected colors
├── test-code.png # Syntax-highlighted code
├── page.png # Full-page browser screenshot
└── output.pdf # URL converted to PDF
src/
├── index.ts — MCP server, 12 tool definitions, CLI entry
├── renderer.ts — Capture engine (terminal, code, browser, PDF, GIF)
├── config.ts — Config loader, defaults, 27 themes
├── cli.ts — CLI commands (init, doctor, test)
├── security.ts — SSRF denylist, path traversal, input limits
├── logger.ts — Audit logging (AuditEvent, log file)
├── brand.ts — Centralized brand tokens (colors, ANSI, logo)
├── terminal.ts — Real terminal detection (Kitty/Gnome/Alacritty/WezTerm)
├── browser.ts — System Chrome profile detection (8-step fallback)
├── setup-shared.ts — Shared bootstrap for interactive setup
├── document.ts — Document render engine (brand-colored)
└── gif.ts — GIF animation (gifenc + fast-png, zero deps)
git clone https://github.com/reeinharddd/snapmcp
cd snapmcp
bun install
bun run build # tsc → dist/
bun test # 240+ tests
GitHub Actions runs on ubuntu-latest, macos-latest, windows-latest — bun only, no node matrix.
MIT — see LICENSE.
FAQs
All-in-one MCP server for visual captures: terminal, code, browser, markdown, diffs, HTML, and PDF — via Playwright
The npm package snapmcp receives a total of 63 weekly downloads. As such, snapmcp popularity was classified as not popular.
We found that snapmcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.

Security News
Socket CTO Ahmad Nassri joins AppSec leaders at Black Hat to discuss active malware, package manager risks, and software supply chain defense.