Skip to main content
Glama
sam2332

Placeholder Image Generator

by sam2332
README.md
# Placeholder Image Generator MCP Server

A Model Context Protocol (MCP) server that generates customizable placeholder images using HTML5 Canvas.

## Features

- **Flexible Dimensions**: Generate images from 1x1 to 4096x4096 pixels
- **Custom Colors**: Support for hex, RGB, and named colors
- **Smart Text Rendering**: Automatic font sizing and line wrapping
- **Contrast Detection**: Automatically chooses contrasting text colors
- **Multiple Formats**: Outputs PNG and JPEG images
- **Error Validation**: Comprehensive input validation with helpful error messages

## Installation

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

## Usage

This is an MCP server designed to be used with MCP-compatible clients like Claude for Desktop.

### Tool: generate-placeholder-image

Generate a placeholder image with the following parameters:

- `filename` (string): Output filename with extension (.png, .jpg, .jpeg)
- `width` (number): Image width in pixels (1-4096)
- `height` (number): Image height in pixels (1-4096)
- `color` (string): Background color (hex like #FF0000, rgb like rgb(255,0,0), or named colors like 'red')
- `text` (string): Text to display on the image

### Example

```typescript
{
  "filename": "placeholder.png",
  "width": 800,
  "height": 600,
  "color": "#3498db",
  "text": "Sample Placeholder"
}
```

## Configuration for Claude for Desktop

Add the following to your Claude for Desktop configuration:

### Windows
```json
{
  "mcpServers": {
    "placeholder-generator": {
      "command": "node",
      "args": ["D:\\path\\to\\generate-placeholder\\build\\index.js"]
    }
  }
}
```

### macOS/Linux
```json
{
  "mcpServers": {
    "placeholder-generator": {
      "command": "node",
      "args": ["/absolute/path/to/generate-placeholder/build/index.js"]
    }
  }
}
```

## Development

```bash
# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev
```

## Technical Details

- Built with TypeScript and the MCP SDK
- Uses the `canvas` library for server-side image generation
- Implements stdio transport for MCP communication
- Automatic text scaling based on image dimensions
- Multi-line text support with word wrapping

## Supported Color Formats

- **Hex**: `#FF0000`, `#f00`
- **RGB**: `rgb(255, 0, 0)`
- **RGBA**: `rgba(255, 0, 0, 0.5)`
- **Named**: `red`, `blue`, `green`, `yellow`, `orange`, `purple`, `pink`, `brown`, `black`, `white`, `gray`

## License

ISC