api-draw

api-draw

MCP server for generating and editing images using gpt-image-2. Enables image creation, editing, listing, and retrieval via natural language tools.

Category
访问服务器

README

API Draw

面向个人使用的 gpt-image-2 生图工具。它共用一套核心能力,提供:

  • Codex 全局 MCP:让 Codex 在任何项目中调用生图和编辑工具
  • 本地网页:提示词、尺寸预设、图片上传编辑、历史记录和下载
  • CLI:适合脚本、批处理和诊断

API 默认指向 https://api.999555999.com/v1,模型默认是 gpt-image-2。

安装与升级

在本项目目录执行:

npm.cmd install
npm.cmd install --global .

也可以运行项目自带的 install-global.ps1。如果 PowerShell 的执行策略拦截了 .ps1 文件,使用上面的 npm.cmd 命令。

升级代码后重复执行全局安装即可。当前全局命令名是 api-draw,Windows 下推荐显式使用 api-draw.cmd,避免 PowerShell 误选 api-draw.ps1 shim。

API Key

不要把 Key 写进项目文件、config.toml 或聊天记录。推荐保存为当前 Windows 用户环境变量:

[Environment]::SetEnvironmentVariable("API_DRAW_API_KEY", "你的密钥", "User")

已有 PowerShell 窗口不会自动刷新环境变量。可以在当前窗口立即载入:

$env:API_DRAW_API_KEY = [Environment]::GetEnvironmentVariable("API_DRAW_API_KEY", "User")

API Draw 在 Windows 上还会在进程环境未找到 Key 时读取当前用户的 HKCU\Environment,因此网页服务不依赖父进程是否刚刚刷新。

可选环境变量:

变量 默认值 用途
API_DRAW_BASE_URL https://api.999555999.com/v1 图片 API 根地址
API_DRAW_MODEL gpt-image-2 模型名
API_DRAW_DATA_DIR Windows: %LOCALAPPDATA%\api-draw 图片、历史和服务状态目录
API_DRAW_TIMEOUT_MS 600000 单次 API 请求超时(毫秒)

一键网页

推荐方式:

api-draw.cmd open

它会后台启动本地服务并打开默认浏览器,不会留下常驻 CMD 窗口。也可以双击 open-api-draw.vbs,该方式完全隐藏控制台窗口。

默认地址是 http://127.0.0.1:8765。如果端口被占用,工具会自动选择附近的可用端口并打印实际地址。

服务管理:

api-draw.cmd start       # 后台启动,不打开浏览器
api-draw.cmd status      # 查看 PID、端口、Key 和健康状态
api-draw.cmd stop        # 停止后台服务
api-draw.cmd open        # 启动并打开浏览器

前台调试可以使用 api-draw.cmd web --port 8765。正常使用不需要前台模式。

网页功能

  • 生成模式:输入提示词,选择质量和尺寸后生成
  • 常见尺寸:1:1、3:2、2:3、16:9、9:16、4:3、3:4、4K 16:9
  • 自定义尺寸:宽高都必须是 16 的倍数,最长边不超过 3840,比例不超过 3:1,总像素在 655,360 到 8,294,400 之间
  • 编辑模式:直接选择 1 到 16 张 PNG/JPG/WEBP 参考图,可选 PNG 蒙版
  • 历史图库:原图预览、下载、复制提示词、套用参数、删除记录
  • 图片下载会以附件形式返回,文件名和 MIME 类型保持正确

编辑上传会在本地临时目录处理,调用完成或失败后自动清理临时文件。参考图单张不超过 25MB,蒙版不超过 4MB。

CLI

api-draw.cmd generate -p "一间充满阳光的现代工作室" -s 1024x1024 -q high
api-draw.cmd edit -p "把天空改成夕阳" -i "C:\\images\\input.png" --mask "C:\\images\\mask.png"
api-draw.cmd list -n 20
api-draw.cmd doctor

doctor 检查 Key、API 地址、尺寸规则、数据目录、网页服务和 Codex MCP 配置。doctor --live 会额外调用一次真实 API,使用低质量诊断图,会产生 API 用量。

Codex MCP

全局配置位于 %USERPROFILE%\.codex\config.toml。安装配置:

codex mcp add api-draw --env API_DRAW_BASE_URL=https://api.999555999.com/v1 --env API_DRAW_MODEL=gpt-image-2 -- api-draw mcp

API Key 通过 env_vars = ["API_DRAW_API_KEY"] 从用户环境转发,不会写入配置文件。修改 Key 或 MCP 配置后,完全退出并重新启动 Codex。

MCP 工具:

工具 参数 作用
generate_image prompt, size, quality 生成一张图片并保存本地
edit_image prompt, image_paths, mask_path?, size, quality 编辑 1 到 16 张本地图片
list_images limit? 查询历史记录
get_image id 返回记录元数据和图片内容

生成和编辑工具会返回 MCP image content、绝对路径、MIME 类型、文件大小和记录 ID。MCP 服务通过 STDIO 运行,不需要常驻 HTTP 端口。

数据位置

默认目录:

%LOCALAPPDATA%\api-draw\
├─ images\       已完成的图片
├─ uploads\      网页编辑临时上传,完成后清理
├─ history.json   最近 500 条记录
└─ service.json   后台网页服务 PID、端口和启动时间

历史文件使用临时文件替换方式写入,避免网页和 MCP 同时写入时产生半截 JSON。每次请求在发出前就会创建任务记录,状态包括 running、succeeded、failed 和 timed_out;即使客户端断开或 API 超时,提示词、参数、任务 ID 和错误信息仍会保留。

这意味着超时后不要立刻重复生成。先运行 api-draw.cmd list 或在网页刷新历史,查看原任务是否后来变成 succeeded;只有明确为 failed 或 timed_out 时才考虑重试。

故障排查

网页提示 API_DRAW_API_KEY is not set

$env:API_DRAW_API_KEY = [Environment]::GetEnvironmentVariable("API_DRAW_API_KEY", "User")
api-draw.cmd stop
api-draw.cmd open
api-draw.cmd doctor

访问网页的 /api/health 也可以检查 apiKeyConfigured 是否为 true。

PowerShell 提示禁止运行 api-draw.ps1

使用 api-draw.cmd,例如 api-draw.cmd open、api-draw.cmd doctor。

端口被占用

open 和 start 会自动选择附近的空闲端口。查看实际端口:

api-draw.cmd status

MCP 工具没有出现

  1. 执行 codex mcp get api-draw
  2. 确认 command = "api-draw" 和 env_vars = ["API_DRAW_API_KEY"]
  3. 完全退出并重新启动 Codex
  4. 在终端执行 api-draw.cmd doctor

开发与测试

npm.cmd run check
npm.cmd test

测试使用本地 Mock API,不会产生真实 API 用量。MCP 测试使用 MCP SDK 的内存传输,覆盖工具发现和 generate_image 调用;真实接口测试使用 api-draw.cmd doctor --live,需要你明确执行。

安全说明

  • API Key 只从环境变量或当前用户注册表读取
  • 网页仅监听 127.0.0.1,默认不能被局域网访问
  • 下载接口使用文件名 basename,不能通过路径穿越读取其他文件
  • 上传文件只进入本地临时目录,调用结束后清理
  • delete 只删除 API Draw 数据目录内的历史记录和图片

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选