Midjourney Mcp

Midjourney Mcp

🚀 🎨 Midjourney MCP Server

Midjourney MCP (Model Context Protocol) 服务器功能完备,借助 GPTNB API 实现 Midjourney 图像生成功能,能够满足多样化的图像创作需求。

🚀 快速开始

环境要求

  • Python 3.10+
  • pip
  • Node.js(用于 MCP Inspector,可选)

安装

# 克隆项目
git clone 
cd mj-mcp

# 安装依赖
pip install -r requirements.txt

# 或安装为可编辑包
pip install -e .

配置

设置环境变量:

# Windows
set GPTNB_API_KEY=your_api_key_here
set GPTNB_BASE_URL=https://aiclound.vip

# Linux/Mac
export GPTNB_API_KEY=your_api_key_here
export GPTNB_BASE_URL=https://aiclound.vip

或创建 .env 文件:

GPTNB_API_KEY=your_api_key_here
GPTNB_BASE_URL=https://aiclound.vip

运行

启动服务器

# 直接运行
python src/server.py

# 或使用MCP开发工具
npx @modelcontextprotocol/inspector python src/server.py

✨ 主要特性

  • 🖼️ 图像生成:依据文本提示生成高质量图像。
  • 🔄 图像变换:支持放大、变体、重新生成等操作。
  • 🎭 高级编辑:具备缩放、平移、修复等编辑功能。
  • 👥 人脸替换:拥有智能人脸交换功能。
  • 📝 图像描述:可进行 AI 图像内容分析。
  • 🔧 提示优化:提供智能提示词优化建议。
  • 📊 任务管理:实现简洁高效的任务状态跟踪。

🛠️ 可用工具 (7个)

核心图像生成工具 (6个)

工具名称 描述 主要参数
imagine_image 生成图像 prompt, aspect_ratio, base64_images
blend_images 混合图像 base64_images, dimensions
describe_image 描述图像 base64_image
change_image 图像变换 task_id, action, index
modal_edit 高级编辑 task_id, action, prompt
swap_face 人脸替换 source_image, target_image

任务管理工具 (1个)

工具名称 描述 主要参数
get_task_status 任务状态查询 task_id

📁 项目结构

mj-mcp/
├── src/                    # 源代码目录
│   ├── server.py          # MCP 服务器主入口
│   ├── client.py          # GPTNB API 客户端
│   ├── service.py         # 业务逻辑服务
│   ├── config.py          # 配置管理
│   ├── models.py          # 数据模型
│   ├── task_handler.py    # 任务处理器
│   ├── exceptions.py      # 异常定义
│   └── utils.py           # 工具函数
├── requirements.txt       # 项目依赖
├── setup.py              # 安装配置
└── README.md             # 项目文档

🔧 技术细节

代码结构

项目采用简化的扁平化结构,符合 MCP 协议最佳实践:

  • 无包结构:移除了不必要的 __init__.py__main__.py
  • 直接入口:通过 python src/server.py 直接启动。
  • 现代依赖:使用最新版本的 MCP SDK (1.9.1)。
  • 简洁配置:使用传统的 requirements.txt 管理依赖。
  • 精简工具集:7 个核心工具,专注于实用功能,避免冗余。

💻 使用示例

基础用法

# 通过 MCP 客户端调用
result = await session.call_tool("imagine_image", {
"prompt": "a beautiful sunset over mountains, digital art",
"aspect_ratio": "16:9"
})

高级用法

# 生成变体
result = await session.call_tool("change_image", {
"task_id": "previous_task_id",
"action": "VARIATION",
"index": 1
})

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

GPT-3.0 License

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 21:51

相似服务问题