gpt-image-mcp

gpt-image-mcp

MCP server that exposes OpenAI image generation and editing as tools, focused on creating consistent character expressions by compositing edited regions onto a stable base image.

Category
访问服务器

README

gpt-image-mcp

OpenAI の画像生成/編集を MCP ツールとして出すサーバ。 同じキャラクターの差分絵(口の形・目の開閉)を作る用途を主目的にしている。

なぜ単なるAPIラッパーではないか

/v1/images/edits は、マスクを渡しても画像全体を再生成する。

実測(2026-08-12・gpt-image-2・1024x1024):

マスク内で変化 マスク外で変化 マスク外の最大差分
口を「あ」に編集 7,184px (35.8%) 9,425px (0.92%) 220
口を「い」に編集 1,498px (7.5%) 7,431px (0.72%) 216

最大差分220は「ほぼ別の色」。編集結果をそのまま動画のコマに使うと、口が変わるたびに髪や輪郭も動く—— 30fps で切り替えると顔が揺れる。

このサーバは対処を同梱している。編集結果は「口の形の参考」として扱い、土台は1枚に固定して、 マスク領域だけをローカルで貼り直す(compose_region)。土台はビット単位で保たれる。

マスク外の最大差分
編集結果をそのまま使う 220
単純にぼかして合成 55(ぼけがマスク外へ滲む)
compose_region(内側だけぼかす) 10(知覚不能)

ツール

ツール 課金 何をするか
list_image_models なし このキーで使える画像モデルを列挙。キーが生きているかの確認にも使う
generate_image あり プロンプトから生成し、ファイルに保存してパスを返す
edit_image あり マスク指定で編集。そのままコマに使わないこと(上記)
compose_region なし 編集結果のマスク領域だけを土台へ貼る。土台の汚れを自動検証する
make_mask なし 楕円マスクを作る(比率指定)

画像は base64 で返さずファイルに書いてパスを返す。会話の文脈を食い潰さないため。

APIキーの扱い

このサーバはキーを保持しない。 呼ぶたびに、次の順で解決する。

  1. 環境変数 OPENAI_API_KEY
  2. macOS Keychain(OPENAI_KEYCHAIN_SERVICE にサービス名を設定した場合)

エラー本文にキーが混ざった場合は [REDACTED] に置換してから返す。

Keychain へ入れる場合(コマンド履歴にキーを残さない形):

printf 'key: '; stty -echo; read -r K; stty echo; echo
security add-generic-password -a "$USER" -s openai-image -U -w "$K"; unset K

⚠ security の対話入力(-w を引数なしで最後に置く形)は128文字で切り捨てる。 sk-proj- 形式のキーは164文字あるため、上の「値として渡す」形を使うこと。

設定

.mcp.json / Claude Code の MCP 設定に追加する。

{
  "mcpServers": {
    "gpt-image": {
      "command": "node",
      "args": ["/path/to/gpt-image-mcp/src/index.mjs"],
      "env": { "OPENAI_KEYCHAIN_SERVICE": "openai-image" }
    }
  }
}

必要なもの

  • Node.js 18+(fetch / FormData を使う)
  • Python 3 + Pillow(compose_region / make_mask)。numpy があれば土台の汚れを自動検証する
npm install
pip install Pillow numpy

アバターの作り方(この構成での標準手順)

  1. generate_image で土台を1枚作る。背景は単色、影とグラデーションを禁止、正面向き、口は閉じ目は開く
  2. make_mask で口の領域(目安 0.40 / 0.455 / 0.60 / 0.575)と目の領域(0.34 / 0.32 / 0.66 / 0.42)のマスクを作る
  3. edit_image で口の形(あいうえお)と閉じた目を作る
  4. compose_region で全部を土台へ貼り直す ← ここを飛ばすと顔が揺れる
  5. 口の形は母音ごとに1枚。日本語の口パクは a i u e o + 閉じ口の6枚で足りる

⚠ 「い」のように変化が小さい口の形は生成が弱い(実測でマスク内の変化が7.5%しか出ず、 マスク外のほうが動いた)。プロンプトを形で具体的に指示するか、その口だけ手で描くほうが早い。

生成物の権利

生成画像を販売物に使う場合、「動画に使ってよい」と「販売する教材に使ってよい」が 別条項のことがある。使う前に、使うキーのアカウントの利用規約を確認すること。 借りたキーで作った素材を自社商品に使わない。

ライセンス

MIT

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选