AI Picture MCP Server
# AI Picture MCP Server
[](https://www.npmjs.com/package/aipic-mcp)
[](https://opensource.org/licenses/MIT)
[](https://github.com/leonaries/aipic-mcp/stargazers)
[](https://www.typescriptlang.org/)
A Model Context Protocol (MCP) server that provides AI-powered image generation capabilities specifically designed for web design workflows. This server integrates with **Alibaba Cloud DashScope's FLUX model** to generate high-quality images based on English prompts, perfect for creating placeholder images, hero images, product mockups, and other web assets.
## 🚀 Quick Start
```bash
npx -y aipic-mcp
```
## ✨ Features
- **🎨 AI Image Generation**: Generate high-quality images using DashScope FLUX model with natural language prompts
- **🖥️ Web-Optimized Output**: Automatically optimizes images for web use with proper compression and sizing
- **📏 Flexible Sizing**: Support for custom width and height specifications (default: 1024x1024)
- **📋 Base64 Encoding**: Returns images in base64 format for direct use in web applications
- **⚡ Smart File Saving**: Auto-saves to Desktop when possible, falls back to temp directory
- **🔄 Async Processing**: Uses DashScope's async task API for reliable image generation
- **🛡️ Robust Error Handling**: Comprehensive error handling for API issues, network problems, and invalid inputs
- **🔐 Environment Variable Support**: Configure API keys via `DASHSCOPE_API_KEY` or `MODELSCOPE_API_KEY`
## 📦 Installation & Usage
### Option 1: NPX (Recommended)
Use directly with NPX without installation:
```bash
npx -y aipic-mcp
```
**Claude Desktop Configuration:**
```json
{
"mcpServers": {
"aipic": {
"command": "npx",
"args": ["-y", "aipic-mcp"]
}
}
}
```
### Option 2: NPX with API Key Environment Variable (Recommended)
For the best experience, configure your DashScope API key as an environment variable:
```json
{
"mcpServers": {
"aipic": {
"command": "npx",
"args": ["-y", "aipic-mcp"],
"env": {
"DASHSCOPE_API_KEY": "sk-your-dashscope-api-key-here"
}
}
}
}
```
**With full PATH (if using NVM or custom Node installation):**
```json
{
"mcpServers": {
"aipic": {
"command": "/Users/your-username/.nvm/versions/node/v20.19.4/bin/npx",
"args": ["-y", "aipic-mcp"],
"env": {
"DASHSCOPE_API_KEY": "sk-your-dashscope-api-key-here",
"PATH": "/Users/your-username/.nvm/versions/node/v20.19.4/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
```
### Option 3: Global Installation
```bash
npm install -g aipic-mcp
```
**Claude Desktop Configuration:**
```json
{
"mcpServers": {
"aipic": {
"command": "aipic-mcp"
}
}
}
```
**With API Key Environment Variable:**
```json
{
"mcpServers": {
"aipic": {
"command": "aipic-mcp",
"env": {
"DASHSCOPE_API_KEY": "sk-your-dashscope-api-key-here"
}
}
}
}
```
### Option 4: Local Development
If you want to contribute to the project or customize it:
1. Clone this repository:
```bash
git clone https://github.com/leonaries/aipic-mcp.git
cd aipic-mcp
```
2. Install dependencies:
```bash
npm install
```
3. Build the TypeScript code:
```bash
npm run build
```
4. Test locally:
```bash
npm run dev
```
**Claude Desktop Configuration for Local Development:**
```json
{
"mcpServers": {
"aipic": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/Users/your-username/path/to/aipic-mcp",
"env": {
"DASHSCOPE_API_KEY": "sk-your-dashscope-api-key-here"
}
}
}
}
```
> **Note**: Replace `/Users/your-username/path/to/aipic-mcp` with the actual path where you cloned the repository.
## ⚙️ Configuration
### Claude Desktop Setup
Add the server to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
Choose one of the configuration options above based on your installation method.
### DashScope API Key
You'll need a **DashScope API key** from Alibaba Cloud to use this server. Get one from [Alibaba Cloud DashScope](https://dashscope.aliyun.com/).
**How to get your API key:**
1. Visit [Alibaba Cloud DashScope](https://dashscope.aliyun.com/)
2. Sign up/login to your account
3. Go to API Keys section
4. Create a new API key with image generation permissions
5. Copy the API key (format: `sk-xxxxxxxxxx`)
**Two ways to provide your API key:**
1. **Environment Variable (Recommended)**: Configure in Claude Desktop config as shown above
2. **Runtime Parameter**: Pass the API key when calling the tool (less convenient but more flexible)
## 🎯 Usage
The server provides one main tool:
### `generate_web_image`
Generates an AI image optimized for web design use.
**Parameters:**
- `prompt` (required): English description of the image to generate
- `apiKey` (optional): Your DashScope API key (if not set via `DASHSCOPE_API_KEY` environment variable)
- `width` (optional): Image width in pixels (default: 1024)
- `height` (optional): Image height in pixels (default: 1024)
- `outputPath` (optional): Custom path to save the image (default: auto-saves to Desktop or temp directory)
**Example prompts:**
- "A modern minimalist office workspace with laptop and coffee cup"
- "Abstract geometric background in blue and purple gradients"
- "Professional team meeting in a bright conference room"
- "E-commerce product photo of wireless headphones on white background"
- "Hero image of a mountain landscape at sunrise"
**Example usage in Claude (with environment variable configured):**
```
Generate a hero image for my website with the prompt "A sleek modern smartphone floating above a city skyline at dusk"
```
**Example usage in Claude (with manual API key):**
```
Generate a hero image for my website with the prompt "A sleek modern smartphone floating above a city skyline at dusk" using my DashScope API key "sk-your-api-key-here"
```
## 🔧 API Integration Details
This server uses the Alibaba Cloud DashScope API with the following configuration:
- **Model**: `flux-schnell` (FLUX.1 schnell model for fast generation)
- **Endpoint**: `https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis`
- **Authentication**: Bearer token (your DashScope API key)
- **Mode**: Async processing with task polling
- **Timeout**: 5 minutes for generation, 30 seconds for download
## 🛡️ Error Handling
The server handles various error conditions:
- Invalid or missing API keys
- Rate limiting from DashScope API
- Network timeouts and connectivity issues
- Task generation failures
- Image download failures
- File system errors when saving images
## 🔨 Development
### Running in Development Mode
```bash
npm run dev
```
### Building for Production
```bash
npm run build
```
### Testing
```bash
npm test
```
### Publishing to NPM
The project is already published to NPM. For maintainers:
```bash
npm run build
npm version patch # or minor/major
npm publish
```
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 🔒 Security Considerations
- API keys can be configured via environment variables for better security
- Images are saved to the local filesystem under the current working directory
- Network requests have appropriate timeouts to prevent hanging
- Input validation prevents empty prompts and missing required parameters
- Environment variables are more secure than hardcoded keys
## 📚 Dependencies
- `@modelcontextprotocol/sdk`: MCP SDK for server implementation
- `axios`: HTTP client for API requests
- `sharp`: Image processing and optimization
- `uuid`: Unique ID generation for filenames
## 🐛 Troubleshooting
### Common Issues
1. **"Command not found" error**
- Make sure you have Node.js 18+ installed
- Try running `npx -y aipic-mcp` instead of global installation
- If using NVM, specify the full path to npx in your configuration
2. **API key errors**
- Verify your DashScope API key is valid (should start with `sk-`)
- Check that you have sufficient quota on your Alibaba Cloud account
- Ensure the API key is correctly configured as `DASHSCOPE_API_KEY` environment variable
- Make sure your API key has image generation permissions
3. **Image generation timeout**
- DashScope API can take up to 2-3 minutes for complex prompts
- Try again with a simpler prompt
- Check your internet connection
4. **Environment variable not working**
- Restart Claude Desktop after updating the configuration
- Verify the JSON syntax in your configuration file
- Check that the API key doesn't have extra spaces or quotes
5. **NPX installation issues**
- Use the `-y` flag to automatically confirm installations
- If using NVM, make sure your PATH is correctly set in the configuration
6. **Task generation failures**
- The server uses async processing, so it may take a few moments
- Check the console logs for detailed error messages
- Ensure your prompt is in English for best results
## 📄 License
MIT License - see [LICENSE](./LICENSE) file for details.
## 🔗 Links
- **NPM Package**: https://www.npmjs.com/package/aipic-mcp
- **GitHub Repository**: https://github.com/leonaries/aipic-mcp
- **Alibaba Cloud DashScope**: https://dashscope.aliyun.com/
- **Model Context Protocol**: https://modelcontextprotocol.io/
## 📝 Changelog
### v1.0.4 (Latest)
- 📝 **Documentation Update**: Comprehensive README improvements with enhanced feature descriptions
- 🔧 **API Key Format**: Updated all examples to use correct `sk-` prefix for DashScope API keys
- 🌐 **Environment Variables**: Clarified primary use of `DASHSCOPE_API_KEY` over legacy `MODELSCOPE_API_KEY`
- ✨ **User Experience**: Improved installation guides and troubleshooting documentation
### v1.0.3
- ⚡ **Smart File Saving**: Auto-saves images to Desktop when possible, falls back to temp directory
- 🔧 **Enhanced Environment Variables**: Primary support for `DASHSCOPE_API_KEY`, backward compatible with `MODELSCOPE_API_KEY`
- 🛡️ **Improved Error Handling**: Better error messages and more robust API integration
- 📁 **Intelligent Path Detection**: Automatic directory creation and fallback mechanisms
- 🚀 **Better User Experience**: Images now saved directly to user's Desktop by default
### v1.0.1
- 🔧 **BREAKING CHANGE**: Updated to use Alibaba Cloud DashScope API instead of ModelScope API
- ✨ Added async task processing for more reliable image generation
- 🐛 Fixed API authentication issues
- 📚 Updated documentation to reflect DashScope integration
### v1.0.0
- 🎉 Initial release with ModelScope integration
---
**🌟 Star this repository if you find it useful!**TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined for generating AI images for web design.
A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'generate_web_image' follows a clear verb_noun pattern.
One tool is too few for a server with a broad purpose like 'AI Picture MCP Server', which suggests capabilities beyond just web image generation. This minimal toolset limits functionality and feels incomplete for the implied scope.
The server's name implies a general AI picture domain, but the single tool only covers web image generation. There are significant gaps, such as lack of tools for other image types (e.g., general-purpose, editing, or analysis), making the surface severely incomplete.