{
  "markdown": "# MidjourneyMCP\n\n<!-- mcp-name: io.github.AceDataCloud/mcp-midjourney -->\n\n[![PyPI version](https://img.shields.io/pypi/v/mcp-midjourney.svg)](https://pypi.org/project/mcp-midjourney/)\n[![PyPI downloads](https://img.shields.io/pypi/dm/mcp-midjourney.svg)](https://pypi.org/project/mcp-midjourney/)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io)\n\nA [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for AI image and video generation using [Midjourney](https://midjourney.com) through the [AceDataCloud API](https://platform.acedata.cloud).\n\nGenerate AI images, videos, and manage creative projects directly from Claude, VS Code, or any MCP-compatible client.\n\n## Features\n\n- **Image Generation** - Create AI-generated images from text prompts\n- **Image Transformation** - Upscale, create variations, zoom, and pan images\n- **Image Blending** - Combine multiple images into creative fusions\n- **Reference-Based Generation** - Use existing images as inspiration\n- **Image Description** - Get AI descriptions of images (reverse prompt)\n- **Image Editing** - Edit images with text prompts and masks\n- **Video Generation** - Create videos from text and reference images\n- **Video Extension** - Extend existing videos to make them longer\n- **Translation** - Translate Chinese prompts to English\n- **Task Tracking** - Monitor generation progress and retrieve results\n\n## Tool Reference\n\n| Tool | Description |\n|------|-------------|\n| `midjourney_imagine` | Generate AI images from a text prompt using Midjourney. |\n| `midjourney_transform` | Transform an existing Midjourney image with various operations. |\n| `midjourney_blend` | Blend multiple images together using Midjourney. |\n| `midjourney_with_reference` | Generate images using a reference image as inspiration. |\n| `midjourney_edit` | Edit an existing image using Midjourney. |\n| `midjourney_describe` | Get AI-generated descriptions of an image. |\n| `midjourney_generate_video` | Generate a video from text prompt and reference image using Midjourney. |\n| `midjourney_extend_video` | Extend an existing Midjourney video to make it longer. |\n| `midjourney_translate` | Translate Chinese text to English for use as Midjourney prompts. |\n| `midjourney_shorten` | Analyze and shorten long Midjourney prompts while preserving key ideas. |\n| `midjourney_get_seed` | Get the seed value of a previously generated Midjourney image. |\n| `midjourney_get_task` | Query the status and result of a Midjourney generation task. |\n| `midjourney_get_tasks_batch` | Query multiple Midjourney generation tasks at once. |\n| `midjourney_list_actions` | List all available Midjourney API actions and corresponding tools. |\n| `midjourney_get_prompt_guide` | Get guidance on writing effective prompts for Midjourney. |\n| `midjourney_list_transform_actions` | List all available transformation actions for Midjourney images. |\n\n## Quick Start\n\n### 1. Get Your API Token\n\n1. Sign up at [AceDataCloud Platform](https://platform.acedata.cloud)\n2. Go to the [API documentation page](https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461)\n3. Click **\"Acquire\"** to get your API token\n4. Copy the token for use below\n\n### 2. Use the Hosted Server (Recommended)\n\nAceDataCloud hosts a managed MCP server — **no local installation required**.\n\n**Endpoint:** `https://midjourney.mcp.acedata.cloud/mcp`\n\nAll requests require a Bearer token. Use the API token from Step 1.\n\n#### Claude.ai\n\nConnect directly on [Claude.ai](https://claude.ai) with OAuth — **no API token needed**:\n\n1. Go to Claude.ai **Settings → Integrations → Add More**\n2. Enter the server URL: `https://midjourney.mcp.acedata.cloud/mcp`\n3. Complete the OAuth login flow\n4. Start using the tools in your conversation\n\n#### Claude Desktop\n\nAdd to your config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n#### Cursor / Windsurf\n\nAdd to your MCP config (`.cursor/mcp.json` or `.windsurf/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n#### VS Code (Copilot)\n\nAdd to your VS Code MCP config (`.vscode/mcp.json`):\n\n```json\n{\n  \"servers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\nOr install the [Ace Data Cloud MCP extension](https://marketplace.visualstudio.com/items?itemName=acedatacloud.acedatacloud-mcp) for VS Code, which registers the hosted MCP servers with one-click setup.\n\n#### JetBrains IDEs\n\n1. Go to **Settings → Tools → AI Assistant → Model Context Protocol (MCP)**\n2. Click **Add** → **HTTP**\n3. Paste:\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n\n#### Claude Code\n\nClaude Code supports MCP servers natively:\n\n```bash\nclaude mcp add midjourney --transport http https://midjourney.mcp.acedata.cloud/mcp \\\n  -h \"Authorization: Bearer YOUR_API_TOKEN\"\n```\n\nOr add to your project's `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n#### Cline\n\nAdd to Cline's MCP settings (`.cline/mcp_settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n#### Amazon Q Developer\n\nAdd to your MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n#### Roo Code\n\nAdd to Roo Code MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n#### Continue.dev\n\nAdd to `.continue/config.yaml`:\n\n```yaml\nmcpServers:\n  - name: midjourney\n    type: streamable-http\n    url: https://midjourney.mcp.acedata.cloud/mcp\n    headers:\n      Authorization: \"Bearer YOUR_API_TOKEN\"\n```\n\n#### Zed\n\nAdd to Zed's settings (`~/.config/zed/settings.json`):\n\n```json\n{\n  \"language_models\": {\n    \"mcp_servers\": {\n      \"midjourney\": {\n        \"url\": \"https://midjourney.mcp.acedata.cloud/mcp\",\n        \"headers\": {\n          \"Authorization\": \"Bearer YOUR_API_TOKEN\"\n        }\n      }\n    }\n  }\n}\n```\n\n#### cURL Test\n\n```bash\n# Health check (no auth required)\ncurl https://midjourney.mcp.acedata.cloud/health\n\n# MCP initialize\ncurl -X POST https://midjourney.mcp.acedata.cloud/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}'\n```\n\n### 3. Or Run Locally (Alternative)\n\nIf you prefer to run the server on your own machine:\n\n```bash\n# Install from PyPI\npip install mcp-midjourney\n# or\nuvx mcp-midjourney\n\n# Set your API token\nexport ACEDATACLOUD_API_TOKEN=\"your_token_here\"\n\n# Run (stdio mode for Claude Desktop / local clients)\nmcp-midjourney\n\n# Run (HTTP mode for remote access)\nmcp-midjourney --transport http --port 8000\n```\n\n#### Claude Desktop (Local)\n\n```json\n{\n  \"mcpServers\": {\n    \"midjourney\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-midjourney\"],\n      \"env\": {\n        \"ACEDATACLOUD_API_TOKEN\": \"your_token_here\"\n      }\n    }\n  }\n}\n```\n\n#### Docker (Self-Hosting)\n\n```bash\ndocker pull ghcr.io/acedatacloud/mcp-midjourney:latest\ndocker run -p 8000:8000 ghcr.io/acedatacloud/mcp-midjourney:latest\n```\n\nClients connect with their own Bearer token — the server extracts the token from each request's `Authorization` header.\n\n## Available Tools\n\n### Image Generation\n\n| Tool                        | Description                                           |\n| --------------------------- | ----------------------------------------------------- |\n| `midjourney_imagine`        | Generate images from a text prompt (creates 2x2 grid) |\n| `midjourney_transform`      | Transform images (upscale, variation, zoom, pan)      |\n| `midjourney_blend`          | Blend multiple images together                        |\n| `midjourney_with_reference` | Generate using a reference image as inspiration       |\n\n### Image Editing\n\n| Tool                  | Description                                      |\n| --------------------- | ------------------------------------------------ |\n| `midjourney_edit`     | Edit an existing image with text prompt          |\n| `midjourney_describe` | Get AI descriptions of an image (reverse prompt) |\n\n### Video\n\n| Tool                        | Description                                  |\n| --------------------------- | -------------------------------------------- |\n| `midjourney_generate_video` | Generate video from text and reference image |\n| `midjourney_extend_video`   | Extend existing video to make it longer      |\n\n### Utility\n\n| Tool                   | Description                                   |\n| ---------------------- | --------------------------------------------- |\n| `midjourney_translate` | Translate Chinese text to English for prompts |\n| `midjourney_get_seed`  | Get the seed value of a generated image       |\n\n### Tasks\n\n| Tool                         | Description                  |\n| ---------------------------- | ---------------------------- |\n| `midjourney_get_task`        | Query a single task status   |\n| `midjourney_get_tasks_batch` | Query multiple tasks at once |\n\n### Information\n\n| Tool                                | Description                 |\n| ----------------------------------- | --------------------------- |\n| `midjourney_list_actions`           | List available API actions  |\n| `midjourney_get_prompt_guide`       | Get prompt writing guide    |\n| `midjourney_list_transform_actions` | List transformation actions |\n\n## Usage Examples\n\n### Generate Image from Prompt\n\n```\nUser: Create a cyberpunk city at night\n\nClaude: I'll generate a cyberpunk city image for you.\n[Calls midjourney_imagine with prompt=\"Cyberpunk city at night, neon lights, rain, futuristic, detailed --ar 16:9\"]\n```\n\n### Upscale an Image\n\n```\nUser: Upscale the second image\n\nClaude: I'll upscale the top-right image from the grid.\n[Calls midjourney_transform with image_id and action=\"upscale2\"]\n```\n\n### Blend Multiple Images\n\n```\nUser: Blend these two images: [url1] and [url2]\n\nClaude: I'll blend these images together.\n[Calls midjourney_blend with image_urls=[url1, url2]]\n```\n\n### Generate Video\n\n```\nUser: Animate this image [url] with gentle movement\n\nClaude: I'll create a video from this image.\n[Calls midjourney_generate_video with image_url and prompt=\"Gentle camera movement, cinematic\"]\n```\n\n## Generation Modes\n\n| Mode    | Description                              |\n| ------- | ---------------------------------------- |\n| `fast`  | Recommended for most use cases (default) |\n| `turbo` | Faster generation, uses more credits     |\n| `relax` | Slower generation, cheaper               |\n\n## Configuration\n\n### Environment Variables\n\n| Variable                     | Description                 | Default                     |\n| ---------------------------- | --------------------------- | --------------------------- |\n| `ACEDATACLOUD_API_TOKEN`     | API token from AceDataCloud | **Required**                |\n| `ACEDATACLOUD_API_BASE_URL`  | API base URL                | `https://api.acedata.cloud` |\n| `ACEDATACLOUD_OAUTH_CLIENT_ID`  | OAuth client ID (hosted mode) | —                           |\n| `ACEDATACLOUD_PLATFORM_BASE_URL` | Platform base URL            | `https://platform.acedata.cloud` |\n| `MIDJOURNEY_DEFAULT_MODE`    | Default generation mode     | `fast`                      |\n| `MIDJOURNEY_REQUEST_TIMEOUT` | Request timeout in seconds  | `1800`                      |\n| `LOG_LEVEL`                  | Logging level               | `INFO`                      |\n\n### Command Line Options\n\n```bash\nmcp-midjourney --help\n\nOptions:\n  --version          Show version\n  --transport        Transport mode: stdio (default) or http\n  --port             Port for HTTP transport (default: 8000)\n```\n\n## Development\n\n### Setup Development Environment\n\n```bash\n# Clone repository\ngit clone https://github.com/AceDataCloud/MidjourneyMCP.git\ncd MidjourneyMCP\n\n# Create virtual environment\npython -m venv .venv\nsource .venv/bin/activate  # or `.venv\\Scripts\\activate` on Windows\n\n# Install with dev dependencies\npip install -e \".[dev,test]\"\n```\n\n### Run Tests\n\n```bash\n# Run unit tests\npytest\n\n# Run with coverage\npytest --cov=core --cov=tools\n\n# Run integration tests (requires API token)\npytest tests/test_integration.py -m integration\n```\n\n### Code Quality\n\n```bash\n# Format code\nruff format .\n\n# Lint code\nruff check .\n\n# Type check\nmypy core tools\n```\n\n### Build & Publish\n\n```bash\n# Install build dependencies\npip install -e \".[release]\"\n\n# Build package\npython -m build\n\n# Upload to PyPI\ntwine upload dist/*\n```\n\n## Project Structure\n\n```\nMidjourneyMCP/\n├── core/                   # Core modules\n│   ├── __init__.py\n│   ├── client.py          # HTTP client for Midjourney API\n│   ├── config.py          # Configuration management\n│   ├── exceptions.py      # Custom exceptions\n│   ├── server.py          # MCP server initialization\n│   ├── types.py           # Type definitions\n│   └── utils.py           # Utility functions\n├── tools/                  # MCP tool definitions\n│   ├── __init__.py\n│   ├── describe_tools.py  # Image description tools\n│   ├── edits_tools.py     # Image editing tools\n│   ├── imagine_tools.py   # Image generation tools\n│   ├── info_tools.py      # Information tools\n│   ├── task_tools.py      # Task query tools\n│   ├── translate_tools.py # Translation tools\n│   └── video_tools.py     # Video generation tools\n├── prompts/                # MCP prompt templates\n│   └── __init__.py\n├── tests/                  # Test suite\n├── deploy/                 # Deployment configs\n│   └── production/\n│       ├── deployment.yaml\n│       ├── ingress.yaml\n│       └── service.yaml\n├── .env.example           # Environment template\n├── .gitignore\n├── CHANGELOG.md\n├── Dockerfile             # Docker image for HTTP mode\n├── docker-compose.yaml    # Docker Compose config\n├── LICENSE\n├── main.py                # Entry point\n├── pyproject.toml         # Project configuration\n└── README.md\n```\n\n## API Reference\n\nThis server wraps the [AceDataCloud Midjourney API](https://platform.acedata.cloud):\n\n- [Midjourney Imagine API](https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461) - Image generation\n- [Midjourney Describe API](https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461) - Image description\n- [Midjourney Tasks API](https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461) - Task queries\n- [Midjourney Edits API](https://platform.acedata.cloud/documents/midjourney-edits) - Image editing\n- [Midjourney Videos API](https://platform.acedata.cloud/documents/midjourney-videos) - Video generation\n- [Midjourney Translate API](https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461) - Translation\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing`)\n5. Open a Pull Request\n\n## Service details\n\n<!-- canonical-documentation -->\n[Service details](https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Links\n\n- [AceDataCloud Platform](https://platform.acedata.cloud)\n- [Midjourney Official](https://midjourney.com)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)\n\n---\n\nMade with love by [AceDataCloud](https://platform.acedata.cloud)\n",
  "bytes": 17069,
  "sha": "67368c1399fc809cce596f8e01754b748aba96bedc3d73a8ef15af0e8a2db560",
  "repo_slug": "acedatacloud/midjourneymcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_acedatacloud_mcp_midjourney_8297aca6/readme"
}