Skip to main content
Glama
README.md
# Qwen-Image MCP Server

[中文文档](README-zh.md)

An MCP Server for Alibaba Cloud DashScope (Bailian) **Qwen-Image (千问文生图)** models, supporting both **synchronous** and **asynchronous** image generation. Defaults to sync mode (`generate_image_sync`) for the simplest one-shot workflow.

## Gallery

The following images were generated using the [ian-xiaohei-illustrations](https://github.com/helloianneo/ian-xiaohei-illustrations/tree/main) Skills combined with this MCP Server (Qwen text-to-image):

<p align="center">
  <img src="images/qwen-image-2026-07-20T08-32-04-750Z-1.png" width="45%" />
  <img src="images/qwen-image-2026-07-20T08-32-04-841Z-1.png" width="45%" />
</p>

## Features

### Tools

| Tool | Description | Supported Models |
|------|-------------|------------------|
| `generate_image_sync` | Qwen text-to-image - Sync generation (one request, direct result, default mode) ✅ Recommended | qwen-image-2.0-pro, qwen-image-2.0, qwen-image-max |
| `generate_image_async` | Qwen text-to-image - Async generation (submit task, returns task_id, poll for result) | qwen-image-plus, qwen-image |
| `check_task_status` | Check async task status (use with generate_image_async) | - |
| `download_image` | Download generated images locally (call after task completes) | - |

### Supported Models

| Model | Mode | Resolution | Features |
|-------|------|-----------|----------|
| `qwen-image-2.0-pro` | Sync | 512×512 ~ 2048×2048 | Best text rendering & realism |
| `qwen-image-2.0` | Sync | Same as above | Balanced speed & quality |
| `qwen-image-max` | Sync | Fixed options | High realism, low AI artifacts |
| `qwen-image-plus` | Async | Fixed options | Diverse artistic styles |
| `qwen-image` | Async | Fixed options | Basic version |

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `DASHSCOPE_API_KEY` | `example-key` | **Required**. Alibaba Cloud DashScope API Key |
| `DASHSCOPE_BASE_URL` | `https://dashscope.aliyuncs.com/api/v1` | API base URL |
| `SYNC_MODEL` | `qwen-image-2.0-pro` | Model for sync generation |
| `ASYNC_MODEL` | `qwen-image-plus` | Model for async generation |
| `SAVE_DIR` | `~/Desktop/qwen-images` | Image save directory. ⚠️ For Amazon Q Desktop: you must add this path in Settings → My computer → Local folders, otherwise the sandbox has no permission to read/write |
| `WORK_DIR` | `process.cwd()` | Working directory |

## Quick Start

### 1. Install Dependencies

```bash
npm install
```

### 2. Build

```bash
npm run build
```

### 3. Configure MCP Client

Add configuration in your MCP client (Claude Desktop, Kiro, etc.):

```json
{
  "mcpServers": {
    "qwen-image": {
      "command": "node",
      "args": ["/path/to/qwen-image-mcp/build/index.js"],
      "env": {
        "DASHSCOPE_API_KEY": "sk-your-api-key",
        "DASHSCOPE_BASE_URL": "https://your-workspace.cn-beijing.maas.aliyuncs.com/api/v1",
        "SYNC_MODEL": "qwen-image-2.0-pro",
        "SAVE_DIR": "/Users/yourname/Pictures/qwen-images"
      }
    }
  }
}
```

## Usage Examples

### Sync Generation (Recommended)

Call `generate_image_sync`:
- prompt: "A ginger cat napping in the sunshine"
- size: "2048*2048"
- prompt_extend: true

Returns image URL directly and auto-downloads to local disk.

### Async Generation

1. Call `generate_image_async` to get `task_id`
2. Poll `check_task_status` every 10 seconds
3. Once completed, call `download_image` to save images

## API Reference

### Sync Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| prompt | string | ✅ | Image prompt |
| negative_prompt | string | - | Negative prompt |
| size | string | - | Resolution, default 2048*2048 |
| n | number | - | Number of images (1-6), default 1 |
| seed | number | - | Random seed |
| prompt_extend | boolean | - | Smart rewriting, default true |
| watermark | boolean | - | Watermark, default false |
| model | string | - | Model name |

### Async Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| prompt | string | ✅ | Image prompt |
| negative_prompt | string | - | Negative prompt |
| size | string | - | Resolution, default 1664*928 |
| seed | number | - | Random seed |
| prompt_extend | boolean | - | Smart rewriting, default true |
| watermark | boolean | - | Watermark, default false |
| model | string | - | Model name |

## Debugging

```bash
npm run inspector
```

## Notes

- Image URLs expire after 24 hours; download promptly
- qwen-image-2.0 series supports **sync mode only**
- qwen-image-plus / qwen-image supports **async mode only**
- **Amazon Q Desktop users**: Q Desktop runs MCP Servers in a sandboxed environment with no default filesystem access. You must configure `SAVE_DIR` as an allowed path in Settings → My computer → Local folders before images can be saved

## License

MIT

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation5/5

Each tool serves a unique, clearly distinct purpose: synchronous generation, async submission, status checking, and download. No functional overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (generate_image_*, check_task_status, download_image), making them predictable and easy to understand.

Tool Count5/5

Four tools perfectly cover the core image generation workflow (sync, async, polling, download) without excess or deficiency.

Completeness4/5

Core generation workflow is fully covered (sync, async, status, download). Minor gaps like task cancellation or listing are absent but not critical for basic usage.

Maintenance

ActivityMaintained
ResponsivenessNo issues