README.md•4.98 kB
# 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 implementation