通过 HTTP REST API 调用 mxai 服务(不是 MCP 协议)。所有交互都是标准的 HTTP 请求(GET/POST),返回 JSON 响应。
在调用任何 API 之前,请在心中默念:
我有 MX_AI_API_KEY 吗? → 没有:引导用户获取,不要尝试调用 API
用户的要求能用现有 API 实现吗? → 不能:直接说"抱歉,当前不支持此功能",不要编造
我知道每个参数的含义和必填性吗? → 不确定:查阅下方 API 文档,不要猜测
我准备好处理可能的错误了吗? → 没有:先阅读"错误处理"章节
任何一项为"否",都不要继续调用 API。
设置环境变量 MX_AI_API_KEY:
⚠️ 任何能设置环境变量的方式都可以,不依赖特定平台。
OpenClaw 配置:在 Skills 中找到 mxai,填入 MX_AI_API_KEY
对话示例:
用户提供图片的三种方式,后端都支持:
当用户请求需要图片的功能(如图生视频)但未提供图片时,必须主动提示: "这个功能需要一张图片,请发送图片或提供图片链接。" 不要在没有图片的情况下强行调用 generate 接口。
生成图片:generate_image → 循环调用 get_task_status(间隔5秒)→ 展示结果 生成视频:generate_video → 循环调用 get_task_status(间隔10秒)→ 展示结果 查询信息:get_user_info(积分余额)、list_models(可用模型)、get_my_tasks(历史记录)
MJ 是一套独立的绘画工具,与上面的 generate_image/generate_video 并列。当用户明确提到"MJ"、"MidJourney"时使用 MJ 工具。
MJ 工具一览:
工具用途最简调用mj_drawMJ 风格绘画只需 promptmj_action四宫格后续操作(放大/变幻/重绘等)serial_no + actionmj_videoMJ 视频生成prompt + image(首帧)mj_describe图生文(分析图片生成描述词)imagemj_blend混图(多图融合)images(至少2张)
MJ 绘画流程:
MJ 积分参考:
MJ 模型:
当用户问"怎么使用MJ"时,回答: MJ(MidJourney)是一款高质量 AI 绘画工具。使用方法很简单:
高级玩法:可以调整比例(16:9横版、9:16竖版)、速度模式、风格化程度等参数。
默认模型:seedream-5.0-pro
slug名称积分seedream-3.0即梦3.02积分(VIP)/ 4积分seedream-4.0即梦4.04-6积分(VIP)seedream-4.5即梦4.54-6积分(VIP)seedream-5.0即梦5.0标准版4积分(VIP)/ 8积分seedream-5.0-pro即梦5.0Pro6-20积分(VIP)nano-1.0Nano 1.03积分(VIP)/ 6积分nano-2.0Nano 2.04-8积分(VIP)nano-2.0-proNano 2.0 Pro4-12积分(VIP)
默认模型:seedance-3.5-pro
slug名称积分seedance-3.0即梦视频3.0标准版4-12积分seedance-3.0-pro即梦视频3.0Pro5-40积分seedance-3.5即梦视频3.5标准版10-25积分seedance-3.5-pro即梦视频3.5Pro10-80积分sora-2Sora 2 基础版10-15积分sora-2-emergencySora 2 应急版20积分sora-2-economySora 2 特价官转20-60积分sora-2-stableSora 2 稳定官转50-150积分sora-2-proSora 2 Pro60-65积分kling-1.5KLING 1.540-140积分kling-1.6KLING 1.640-140积分kling-2.1-masterKLING 2.1大师版200-400积分kling-2.1-liteKLING 2.1精简版40-140积分kling-2.5KLING 2.550-100积分kling-2.6KLING 2.630-200积分
Base URL: https://mcp.mxai.cn
认证 Header: Authorization: Bearer ${MX_AI_API_KEY} 或 Query ?key=${MX_AI_API_KEY}
格式: JSON
编码: UTF-8(请求体必须使用 UTF-8 编码,中文直接传入)
网络: 自动使用系统代理(HTTP_PROXY/HTTPS_PROXY)
超时: 默认 30 秒,查询任务状态可延长至 60 秒
⚠️ 重要:这是标准 HTTP REST API,不是 MCP JSON-RPC。直接发 HTTP 请求即可。
用途:用户询问积分、余额、会员状态时调用。
GET /mcp/api/user
返回字段:昵称、会员状态、积分余额、积分参考
用途:用户想了解有哪些模型时调用。
GET /mcp/api/models?type={image|video}
用途:用户想生成图片时调用。
当用户表达 [生成图片] [画一张] [帮我画] 等意图时:
步骤 1:确认需求 IF 用户提供了描述(如"帮我画一只猫"): prompt = 用户的描述 ELSE: 询问用户:"请描述您想要生成的图片内容" → 停止,等待用户回复
IF 用户想用参考图但未提供图片: 询问用户:"请发送参考图片或提供图片链接" → 停止,等待用户回复
步骤 2:构建请求 POST /mcp/api/generate/image
步骤 3:发送请求并处理响应 IF response 成功: serialNo = response.serial_no 说:"✅ 提交成功!正在生成中,请稍候..." 转到 "API 5:查询任务状态" 流程 ELSE: 转到 "错误处理" 流程
参数必填说明prompt是图片描述model否模型 slug(默认 seedream-5.0-pro),只能使用上方图片模型表格中的 slugaspect_ratio否1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 / autoresolution否1K / 2K(默认)/ 4Kinput_images否参考图片数组(URL / base64 / 已上传的 key)
字段说明serial_no任务编号(用于轮询)model使用的模型message提交结果消息
提交后必须立即轮询 get_task_status 直到完成。
用途:用户想生成视频时调用。
当用户表达 [生成视频] [做个视频] [图片变视频] 等意图时:
步骤 1:确认需求 IF 用户提供了描述: prompt = 用户的描述 ELSE: 询问用户:"请描述您想要生成的视频内容" → 停止,等待用户回复
IF 用户想做图生视频但未提供图片: 询问用户:"图生视频需要一张参考图片,请发送图片或提供图片链接" → 停止,等待用户回复
步骤 2:构建请求 POST /mcp/api/generate/video
步骤 3:发送请求并处理响应 IF response 成功: serialNo = response.serial_no 说:"✅ 提交成功!视频生成中,请稍候..." 转到 "API 5:查询任务状态" 流程 ELSE: 转到 "错误处理" 流程
参数必填说明prompt是视频描述model否模型 slug(默认 seedance-3.5-pro),只能使用上方视频模型表格中的 slugaspect_ratio否16:9 / 9:16 / 1:1duration否时长秒数(常用 5 / 10)resolution否480p / 720p / 1080preference_image否参考图片(提供后自动切换为图生视频)end_frame_image否尾帧图片(部分模型支持)
字段说明serial_no任务编号model使用的模型mode文生视频 / 图生视频message提交结果消息
提交后必须立即轮询 get_task_status 直到完成。
用途:查询生成进度,或生成后轮询。
步骤 1:确定要查询的任务编号 IF 是刚生成的任务: serialNo = 上一步返回的 serial_no ELSE IF 用户提供了编号: serialNo = 用户提供的编号 ELSE IF 用户说"刚才的图/最近的任务": serialNo = 最近一次提交的任务编号(从上下文记忆) ELSE: 询问用户:"请问要查询哪个任务?请提供任务编号" → 停止,等待用户回复
步骤 2:发送请求 GET /mcp/api/task/{serial_no}
步骤 3:处理响应
IF status == 2(已完成):
图片任务 → 用 内联展示 image_urls 中的每张图
视频任务 → 提供 video_url 可点击链接
ELSE IF status == 0 或 1(排队/生成中):
等待后重试(图片间隔 5 秒,视频间隔 10 秒)
继续轮询直到完成或失败
ELSE IF status == 3(失败):
展示 fail_msg 失败原因,不要重试
字段类型说明serial_nostring任务编号statusnumber0=排队中 / 1=生成中 / 2=已完成 / 3=失败status_textstring状态文本描述promptstring原始提示词image_urlsarray图片 URL 数组(仅图片任务 status=2 时有值)video_urlstring视频 URL(仅视频任务 status=2 时有值)fail_msgstring失败原因(仅 status=3 时有值)
用途:上传图片供后续使用。
POST /mcp/api/upload
参数必填说明image是图片 URL 或 base64
返回字段:key(OSS key,可在 generate 接口的 input_images / reference_image 中复用)
⚠️ generate 接口已支持直接传入图片,一般无需单独调用。
用途:用户查看历史生成记录。
GET /mcp/api/tasks?type={image|video}&status={0|1|2|3}&page=1&limit=10
用途:用户想用 MJ/MidJourney 风格绘画时调用。
当用户表达 [用MJ画] [MidJourney绘画] [MJ风格] 等意图时:
步骤 1:确认需求 IF 用户提供了描述: prompt = 用户的描述 ELSE: 询问用户:"请描述您想要的图片效果" → 停止,等待用户回复
步骤 2:构建请求 POST /mcp/api/mj/draw
步骤 3:发送请求并处理响应 IF response 成功: serialNo = response.serial_no 说:"✅ MJ 绘画任务已提交!正在生成中..." 转到 "API 5:查询任务状态" 流程 ELSE: 转到 "错误处理" 流程
参数必填说明prompt是描述词,支持中英文混合,建议详细描述以获得更好效果model否模型名称或 ID(默认 V6.1),先调 /mcp/api/models?type=mj 查看可用模型,直接传返回的名称或 IDaspect_ratio否1:1(默认)/ 1:2 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3speed否normal / fast(默认)/ turbo(仅MJ7.0)/ draft(仅MJ7.0)quality否质量化 0100,默认 100stylize否风格化 01000,默认 100(MJ 7.0 不支持)chaos否多样化 0100,默认 0iw否图片权重 0.252.0,默认 1.25(仅有参考图时生效)sref否风格参考权重cref否角色参考oref否物体参考input_images否参考图片数组(URL / base64)public否是否公开作品,默认 false
用途:对 MJ 四宫格图片执行放大、变幻等操作。
POST /mcp/api/mj/action
参数必填说明serial_no是原始任务序列号action是操作类型(见下方)
操作类型:
用途:MJ 视频生成(需要首帧图片)。
POST /mcp/api/mj/video
参数必填说明prompt是视频描述image是首帧图片(URL / base64)speed否normal(默认)/ fastcount否视频数量 1(默认)/ 2 / 4motion否动作幅度 low(默认)/ highloop否是否循环,默认 falseend_image否尾帧图片
用途:上传图片获取 MJ 风格描述词。
POST /mcp/api/mj/describe
参数必填说明image是图片(URL / base64)
用途:多图混合融合。
POST /mcp/api/mj/blend
参数必填说明images是图片数组,至少 2 张(URL / base64)
HTTP 状态码提示语401/403"API Key 无效或已过期,请检查 MX_AI_API_KEY 配置"5xx"请求服务器异常,请稍后重试"超时"请求超时,请稍后重试"网络错误"网络连接失败,请检查网络或代理设置"
⚠️ 禁止使用其他表述,禁止添加"可能原因"、"建议检查"等额外内容。
除了展示上述用户友好的提示外,还必须输出详细的技术日志供排查问题。
类别信息内容说明请求信息HTTP 方法GET/POSTURL(不含 query 参数)如 https://mcp.mxai.cn/mcp/api/userHeader(隐藏 Authorization)Authorization 显示为 Bearer nb_********请求体(隐藏 key)如有 key 相关字段,用 ******** 替换响应信息HTTP 状态码如 401、500响应头完整展示响应体完整展示,即使是错误信息错误信息错误类型如 NetworkError、TimeoutError错误消息完整的错误文本
使用代码块包裹详细日志,格式如下:
=== 错误详情 === 请求:POST https://mcp.mxai.cn/mcp/api/generate/image 状态码:503 错误:请求服务器异常
--- 请求头 --- Content-Type: application/json Authorization: Bearer nb_********
--- 响应头 --- Content-Type: application/json
--- 响应体 --- {"error": "Service Unavailable", "message": "Please try again later"}
⚠️ 详细日志仅供技术排查,不要让普通用户误解。先展示用户友好提示,再展示详细日志。
如果 API 响应包含未预期的字段,原样展示,不要报错。
升级提示:如果之前安装过旧版(文件夹名为 mx-ai-studio),请先删除旧文件夹再安装新版,避免两个 skill 共存冲突。
版本检查:GET https://mcp.mxai.cn/mcp/skill/version 如果 latest_version 高于 1.4.3,告知用户有新版本。