内容
# OpenAI 图片生成服务器
OpenAI **gpt-image** 模型服务器 — 直接从 Claude(或任何 MCP 客户端)生成、编辑和多轮编辑图片。
## 工具列表
- `generate_image` — 文本 → 图片
- `edit_image` — 编辑 / 扩展 / 组合,带有可选遮罩
- `edit_image_conversation` — 多轮迭代编辑(响应 API)
- `image_capabilities` — 发现模型、参数、定价等信息
---
## 快速开始
### 1. 获取代码并构建
```bash
git clone <仓库地址> openai-image-mcp
cd openai-image-mcp
npm install
npm run build
```
`npm run build` 生成 `dist/index.js` — 您指向 Claude 的入口点。
### 2. 使用 Claude 代码注册(一条命令)
```bash
claude mcp add openai-image --scope user \
--env OPENAI_API_KEY=您的OpenAI_API密钥 \
--env IMAGE_OUTPUT_DIR=/绝对路径/到图片 \
-- node /绝对路径/到openai-image-mcp/dist/index.js
```
- 使用 `dist/index.js` 的**绝对路径**(步骤 1 的输出)。
- `IMAGE_OUTPUT_DIR` 是生成图片的保存位置。可选,默认为 `~/Pictures/openai-image-mcp`。
- `--scope user` 使其在每个项目中可用。使用 `--scope project` 将其限制在当前仓库。
验证注册:
```bash
claude mcp list
```
### 3. 使用
在 Claude 中,直接提问 — 例如 *"生成海滩上一辆红色自行车的图片"*。服务器将文件写入 `IMAGE_OUTPUT_DIR` 下并返回路径。
---
## 配置(环境变量)
| 变量 | 必需 | 默认值 | 目的 |
| --- | --- | --- | --- |
| `OPENAI_API_KEY` | **是** | — | OpenAI API 密钥 |
| `IMAGE_OUTPUT_DIR` | 否 | `~/Pictures/openai-image-mcp` | 图片保存位置 |
| `DEFAULT_MODEL` | 否 | `gpt-image-2` | gpt-image-1 / gpt-image-1-mini / gpt-image-2 |
| `DEFAULT_OUTPUT_MODE` | 否 | `path` | `path` \| `base64` \| `both` |
| `MAX_COST_PER_CALL_USD` | 否 | — | 拒绝估计超过此值的调用 |
| `CONFIRM_ABOVE_N` | 否 | — | 生成超过 N 张图片时需要 `confirm:true` |
| `ALLOW_URL_INPUT` | 否 | `false` | 允许 URL 输入图片(见安全性) |
| `SPEND_LOG_PATH` | 否 | — | 追加每次调用的成本记录为 JSONL |
| `PROMPT_ENHANCE` | 否 | `false` | 本地增强短提示(无需额外 LLM 调用) |
| `OPENAI_BASE_URL` | 否 | — | 覆盖 API 基本 URL |
| `LOG_LEVEL` | 否 | `info` | `debug` \| `info` \| `warn` \| `error` |
在 `claude mcp add` 命令上添加任何这些额外的 `--env KEY=value` 参数。
---
## 手动 MCP 配置(其他客户端)
如果您的客户端使用 JSON 配置(Claude Desktop,Cursor,VSCode),请添加:
```json
{
"mcpServers": {
"openai-image": {
"command": "node",
"args": ["/绝对路径/到openai-image-mcp/dist/index.js"],
"env": {
"OPENAI_API_KEY": "您的OpenAI_API密钥",
"IMAGE_OUTPUT_DIR": "/绝对路径/到图片"
}
}
}
}
```
---
## 安全说明
- URL 图片输入**默认关闭**。设置 `ALLOW_URL_INPUT=true` 以启用。启用时,获取请求解析所有 DNS 地址,并拒绝任何私有 / 环回 / 本地链接 / CGNAT / IPv4 映射目标,在每个重定向跳转时重新验证(SSRF 防护)。
- 输出路径仅限于 `IMAGE_OUTPUT_DIR`;现有文件从不被覆盖(冲突时添加数字后缀)。
- 日志仅输出到 **stderr**;stdout 保留用于 MCP 协议。
---
## 开发
```bash
npm test # 运行 vitest 套件
npm run typecheck # tsc --noEmit
npm run build # 编译到 dist/
```
## 说明
- 模型:gpt-image-1(2026-10-23 弃用),gpt-image-1-mini,gpt-image-2(默认)。
- DALL-E 已从 OpenAI API 中移除(2026-05-12)— 不受支持。
- 定价数据截至 2026-06;查询 `image_capabilities` 工具以获取详细信息。