DALL-E MCP Server
# DALL-E MCP Server
A Model Context Protocol (MCP) server for generating images using OpenAI's DALL-E 3 model. This server enables ChatGPT and other MCP-compatible clients to generate high-quality images from text prompts.
## Features
- **DALL-E 3 Integration**: Uses OpenAI's latest image generation model
- **Flexible Parameters**: Configurable image size, quality, and style
- **Local File Storage**: Automatically saves generated images to local filesystem
- **Error Handling**: Comprehensive error handling with detailed logging
- **TypeScript**: Built with TypeScript for type safety and better development experience
## Installation
1. Clone this repository:
```bash
git clone <repository-url>
cd dall-e-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Set up environment variables:
```bash
cp .env.example .env
```
4. Edit `.env` file and add your OpenAI API key:
```env
OPENAI_API_KEY=your_openai_api_key_here
DEFAULT_IMAGE_SIZE=1024x1024
DEFAULT_QUALITY=standard
OUTPUT_DIRECTORY=./generated_images
```
## Usage
### Running the Server
#### Development Mode
```bash
npm run dev
```
#### Production Mode
```bash
npm run build
npm start
```
### Integration with Claude Desktop
Add the server to your Claude Desktop configuration:
**macOS/Linux** (`~/.config/claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"dall-e-server": {
"command": "node",
"args": ["/path/to/dall-e-mcp-server/dist/index.js"],
"env": {
"OPENAI_API_KEY": "your_openai_api_key_here"
}
}
}
}
```
**Windows** (`%APPDATA%/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"dall-e-server": {
"command": "node",
"args": ["C:\\path\\to\\dall-e-mcp-server\\dist\\index.js"],
"env": {
"OPENAI_API_KEY": "your_openai_api_key_here"
}
}
}
}
```
## Available Tools
### `generate_image`
Generates an image using DALL-E 3 based on a text prompt.
**Parameters:**
- `prompt` (required): Text description of the image to generate
- `size` (optional): Image dimensions - `1024x1024`, `1024x1792`, or `1792x1024` (default: `1024x1024`)
- `quality` (optional): Image quality - `standard` or `hd` (default: `standard`)
- `style` (optional): Image style - `vivid` or `natural` (default: `vivid`)
- `filename` (optional): Custom filename without extension
**Example Usage:**
```json
{
"prompt": "A serene mountain landscape at sunset with a lake",
"size": "1024x1792",
"quality": "hd",
"style": "natural",
"filename": "mountain_sunset"
}
```
**Response:**
```json
{
"success": true,
"message": "Image generated successfully",
"details": {
"prompt": "A serene mountain landscape at sunset with a lake",
"size": "1024x1792",
"quality": "hd",
"style": "natural",
"file_path": "/absolute/path/to/generated_images/mountain_sunset.png",
"file_size": 1048576,
"timestamp": "2025-01-15T10:30:00.000Z"
}
}
```
## Configuration
### Environment Variables
- `OPENAI_API_KEY`: Your OpenAI API key (required)
- `DEFAULT_IMAGE_SIZE`: Default image size (default: `1024x1024`)
- `DEFAULT_QUALITY`: Default quality setting (default: `standard`)
- `OUTPUT_DIRECTORY`: Directory to save generated images (default: `./generated_images`)
### Image Formats
All images are saved as PNG files with automatic timestamping if no filename is provided.
## Development
### Project Structure
```
dall-e-mcp-server/
├── src/
│ └── index.ts # Main server implementation
├── generated_images/ # Generated images directory
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
├── .env.example
└── README.md
```
### Building
```bash
npm run build
```
### Development with Watch Mode
```bash
npm run watch
```
## Error Handling
The server includes comprehensive error handling:
- **Missing API Key**: Clear error message when OPENAI_API_KEY is not set
- **API Errors**: OpenAI API errors are caught and returned with details
- **File System Errors**: Issues with saving images are handled gracefully
- **Invalid Parameters**: Input validation with helpful error messages
## Pricing
DALL-E 3 API pricing (as of 2025):
- Standard quality: $0.040 per image (1024×1024), $0.080 per image (1024×1792 or 1792×1024)
- HD quality: $0.080 per image (1024×1024), $0.120 per image (1024×1792 or 1792×1024)
## License
MIT License
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## Support
For issues and questions:
1. Check the error messages in the console
2. Verify your OpenAI API key is valid
3. Ensure you have sufficient API credits
4. Review the MCP client configuration
## Changelog
### v1.0.0
- Initial release with DALL-E 3 integration
- Support for all DALL-E 3 parameters
- Local file storage
- Error handling and logging
- TypeScript implementationTDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'generate_image' has a clear, distinct purpose that cannot be confused with any other tool in the set.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'generate_image' follows a clear verb_noun pattern, and there are no other tools to compare it against for inconsistency.
A single tool is too few for most server purposes, as it limits functionality and can feel thin. While DALL-E's core function is image generation, typical MCP servers benefit from multiple tools (e.g., 3-15) to handle related operations like listing images, editing prompts, or managing settings, making this count borderline insufficient.
The tool set covers the basic image generation function, but there are notable gaps for a DALL-E server. Missing operations might include listing generated images, editing or deleting images, or handling variations, which could lead to agent workarounds or incomplete workflows in more complex tasks.