Skip to main content
Glama
README.md
# Code snippet image MCP server

An MCP (Model Context Protocol) server that generates beautiful code snippet images to post to social media.

## Demo

![Demo Screenshot](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/demo.jpg)

[📹 Watch Demo Video](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/mcp-demo.mp4)

_Watch the MCP server generate beautiful code snippet images in real-time_

## Features

- **Beautiful Code Images**: Generate beautiful code snippet images with syntax highlighting
- **Multiple Themes**: Support for Dracula, Monokai, GitHub, Solarized Dark/Light themes
- **Syntax Highlighting**: Support for multiple programming languages
- **Customizable**: Configurable dimensions, themes, and styling options

## Installation

```bash
npm install
npm run build
```

## Configuration

Add to your MCP configuration file:

```json
{
  "mcpServers": {
    "code-snippet-image-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "code-snippet-image-mcp-server",
        "/custom/output/directory"
      ]
    }
  }
}
```

The server accepts an optional output directory as the first command line argument. If not provided, it defaults to `./output` in the current working directory.

## Usage

The MCP server provides one main tool:

### create_code_image

Generate a beautiful code snippet image:

**Parameters:**

- `code` (string, required): The code to convert to image
- `language` (string, optional): Programming language for syntax highlighting (default: "javascript")
- `theme` (string, optional): Color theme (default: "dracula")
- `title` (string, optional): Title for the code snippet
- `width` (number, optional): Image width in pixels (default: 800)
- `height` (number, optional): Image height in pixels (auto if not specified)
- `padding` (number, optional): Padding around the code window in pixels (default: 52)
- `backgroundColor` (string, optional): Custom background color (overrides theme background)
- `showLineNumbers` (boolean, optional): Show or hide line numbers (default: true)

**Example:**

```json
{
  "code": "const hello = () => console.log('Hello, World!');",
  "language": "javascript",
  "theme": "dracula",
  "title": "Hello World Function",
  "width": 800,
  "height": 600,
  "padding": 52,
  "showLineNumbers": true
}
```

## Supported Themes

### Dracula (Default)

![Dracula Theme](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/dracula.png)

### Monokai

![Monokai Theme](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/monokai.png)

### GitHub

![GitHub Theme](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/github.png)

### Solarized Dark

![Solarized Dark Theme](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/solarized-dark.png)

### Solarized Light

![Solarized Light Theme](https://raw.githubusercontent.com/suhaibkhan/code-snippet-image-mcp/refs/heads/main/assets/solarized-light.png)

## Supported Languages

The server uses highlight.js for syntax highlighting and supports all languages that highlight.js supports, including:

- JavaScript/TypeScript
- Python
- Java
- C/C++
- Go
- Rust
- PHP
- Ruby
- And many more...

## Output

Generated images are saved in the specified output directory (or `./output` by default) with timestamps.

## License

MIT

Maintenance

ActivityInactive
ResponsivenessNo issues