MCP server for generating beautiful code screenshots directly from Claude
A Model Context Protocol (MCP) server that enables Claude to generate syntax-highlighted code screenshots with professional themes. Supports direct file reading, line selection, git diff visualization, and batch processing.
npm install -g code-screenshot-mcp
Quick Setup (Claude Code):
claude mcp add code-screenshot-mcp
Manual Setup (Claude Desktop):
Add to your Claude configuration file at ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"code-screenshot": {
"command": "code-screenshot-mcp"
}
}
}
Restart Claude Desktop after configuration.
git clone https://github.com/MoussaabBadla/code-screenshot-mcp.git
cd code-screenshot-mcp
npm install
npm run build
"Generate a code screenshot of this TypeScript function with Nord theme:
function fibonacci(n: number): number {
if (n <= 1) return n;
return fibonacci(n-1) + fibonacci(n-2);
}
"
"Screenshot src/index.ts with Dracula theme"
"Screenshot lines 20-45 of src/generator.ts with Monokai theme"
"Screenshot my git diff with GitHub Dark theme"
"Screenshot src/index.ts, src/generator.ts, and src/templates.ts"
dracula - Dark purple theme (default)nord - Arctic blue-tinted thememonokai - Classic dark themegithub-light - Clean light themegithub-dark - GitHub's dark themegenerate_code_screenshotGenerate a screenshot from code string.
Parameters:
- code (string, required) - Source code to screenshot
- language (string, required) - Programming language identifier
- theme (string, optional) - Color theme (default: "dracula")
Returns: PNG image with base64 encoding
screenshot_from_fileScreenshot code from file path with automatic language detection.
Parameters:
- filePath (string, required) - Path to source file
- startLine (number, optional) - Start line number (1-indexed)
- endLine (number, optional) - End line number
- theme (string, optional) - Color theme (default: "dracula")
Supported Extensions:
.js, .jsx, .ts, .tsx, .py, .rb, .go, .rs, .java, .c, .cpp, .cs, .php, .swift, .kt, .sql, .sh, .yml, .yaml, .json, .xml, .html, .css, .scss, .md
Returns: PNG image with base64 encoding
screenshot_git_diffGenerate screenshot of git diff output.
Parameters:
- filePath (string, optional) - Specific file to diff (shows all if omitted)
- staged (boolean, optional) - Show staged changes instead of unstaged
- theme (string, optional) - Color theme (default: "dracula")
Returns: PNG image with base64 encoding
batch_screenshotProcess multiple files in a single operation.
Parameters:
- filePaths (string[], required) - Array of file paths
- theme (string, optional) - Theme applied to all screenshots (default: "dracula")
Returns: Array of PNG images with success/failure status





Contributions are welcome. Please follow these steps:
git checkout -b feature/your-featuregit commit -m 'Add your feature'git push origin feature/your-featureMIT License - Copyright (c) 2025 Moussaab Badla
See LICENSE file for details.
Built with Model Context Protocol, Playwright, and Highlight.js.
Repository: github.com/MoussaabBadla/code-screenshot-mcp
$ claude mcp add code-screenshot-mcp \
-- python -m otcore.mcp_server <graph>