Skip to main content
Glama

PdhAPI Image MCP

通过 PdhAPI 在 Codex、Claude Code、Cursor 等 MCP 客户端中生成和编辑图片。默认接口为 https://pdhlzy.com,使用用户自己的 PdhAPI Key。

面向普通用户的三步配置说明:USER_GUIDE.md。

当前版本:0.2.1。支持 Windows、macOS 和 Linux,可用于 Codex、Claude Code、Cursor 等兼容 MCP 的客户端。

GitHub 仓库 · 安装包发布页 · 问题反馈

能做什么

工具

用途

image_generate

文生图,一次 1–4 张

image_edit

上传一张本地参考图并编辑

image_multi_reference

上传 2–10 张参考图,融合生成一张图片

image_batch_edit

最多 10 张图片逐张编辑,遇到失败停止并报告已完成文件

server_info

查看接口、默认模型和输出目录,不展示 Key,不调用上游

生图默认使用 gpt-image-2.5-flare;编辑类工具默认使用 gpt-image-2.5-sunburst。这只是未指定时的默认值,每次调用都可以自行选择模型:在提示词里直接说明想用的模型名,或在支持的客户端里显式传入工具的 model 参数即可临时覆盖默认值,不需要修改配置或重启客户端。也可以通过 PDHAPI_MODEL / PDHAPI_EDIT_MODEL 环境变量修改全局默认值。模型名原样发送,不会因分辨率而自动切换,实际可用模型以自己的 Key 权限为准。

返回结果包含保存文件的绝对路径、真实宽高和缩小预览。批量编辑返回文件列表;原图保持原始分辨率。是否显示内嵌预览由客户端决定。

上游不一定严格按请求尺寸返回图片。程序会在 warnings 中报告尺寸差异,并保留上游原图,不静默缩放。

Related MCP server: 2Xapi.com GPT-image MCP Server

环境要求

  • Node.js 22.19.0 及以上,推荐 22/24 LTS 的最新补丁版本。

  • 有图片模型权限和可用余额的 PdhAPI Key。

  • 本地可写的图片输出目录。

本项目是 Node.js 实现,需要 Node.js 和依赖;不是单文件原生可执行程序。

从源码运行

从 GitHub 获取源码并运行:

git clone https://github.com/Art793351/pdhapi-image-mcp.git
cd pdhapi-image-mcp
npm ci
node src/cli.js version
node src/cli.js --help

先准备密钥,选用以下一种方式:

  1. 系统凭据管理器(推荐):使用原生系统能力保存 Key,不以明文写入配置文件:

    • Windows:Credential Manager

    • macOS:Keychain

    • Linux:Secret Service(例如 GNOME Keyring、KWallet 或 KeePassXC)

    Key 不会写入客户端配置或命令行参数。

    pdhapi-image-mcp keychain set   # 交互输入 Key
    pdhapi-image-mcp install --client codex --keychain

    Linux 说明:需要系统提供可用的 Secret Service,例如 GNOME Keyring、KWallet 或 KeePassXC。无桌面密钥环的服务器建议使用私有 Key 文件。

  2. 私有文件:将 Key 保存在仓库以外的私有 UTF-8 文件中(文件内只有 Key),安装时通过 --key-file 指定。

  3. 环境变量:在启动 MCP 客户端的环境里设置 PDHAPI_API_KEY,然后完全退出并重新启动客户端。

不要把 Key 或密钥文件提交到 GitHub。不要使用带 Key 的命令行参数。本程序不会自动读取 .env 文件,.env.example 仅说明变量名称。

配置客户端

在项目目录选择对应命令。以下 --key-file 路径是示例,需要换成你自己的私有文件路径。

node src/cli.js install --client codex --key-file /absolute/path/to/private-key.txt
node src/cli.js install --client claude --key-file /absolute/path/to/private-key.txt
node src/cli.js install --client cursor --key-file /absolute/path/to/private-key.txt

或使用凭据管理器:

node src/cli.js install --client codex --keychain

Windows 示例:

node src/cli.js install --client codex --key-file 'C:\Users\YourName\.pdhapi\api-key.txt'

安装器会合并 pdhapi-image 配置,保留其他 MCP 和设置,并在修改前生成完整备份。TOML/JSON 会重新序列化,原有注释或排版可能变化。安装后重新启动客户端。安装器只保存密钥文件路径,不复制密钥内容。

安装器会在写入客户端配置前询问是否配置 Key;非交互终端会跳过该步骤。

所有来源的 Key(环境变量、凭据管理器、密钥文件)在保存和读取时都会做基本格式校验:单行、8–512 个可打印 ASCII 字符、不含空格。校验失败会提示具体来源和原因,但不校验 Key 是否真实有效或有权限。

默认配置位置:

客户端

文件

Codex

~/.codex/config.toml,支持 CODEX_HOME

Claude Code

~/.claude.json

Cursor

~/.cursor/mcp.json

Claude Desktop 使用不同的配置文件,可用 --config 指向其实际 JSON 配置。

仅生成配置片段、不修改客户端配置:

node src/cli.js config --client codex
node src/cli.js config --client cursor

安装器登记当前 Node 和程序的绝对路径。安装后不要移动或删除项目;移动后重新运行安装器。

检查与使用

在相同密钥环境中运行:

node src/cli.js doctor

doctor 只检查本机配置和密钥是否可读取,不验证余额、权限或上游连通性。未配置可读密钥时退出码为 2。使用 --key-file 安装后,密钥路径保存在客户端配置中;独立运行 doctor 时仍需设置 PDHAPI_API_KEY_FILE,或者让客户端调用 server_info。

在 MCP 客户端中先调用 server_info,确认地址为 PdhAPI,再提出请求,例如:

用 PdhAPI 生成一张白色陶瓷杯的产品照片,1024×1024,保存到本地。

用 PdhAPI 编辑这张图片,把背景改成浅灰色,保持产品不变。参考图片路径是……

常用尺寸:1024x1024、1536x1024、1024x1536、2048x1152、3840x2160,也支持 auto。手动尺寸必须是 16 的倍数,每边最多 4096。工具允许填写不等于上游支持,具体尺寸和 quality 可用值受模型、渠道及账号权限影响。

配置项

环境变量

默认值 / 用途

PDHAPI_API_KEY

PdhAPI Key,也可通过工具的 api_key 参数临时提供

PDHAPI_API_KEY_FILE

包含 Key 的本地文件,优先级低于直接设置 Key

PDHAPI_API_KEY_KEYCHAIN

设为 true 时从系统凭据管理器读取 Key

PDHAPI_BASE_URL

https://pdhlzy.com,也接受末尾带 /v1

PDHAPI_MODEL

gpt-image-2.5-flare

PDHAPI_EDIT_MODEL

gpt-image-2.5-sunburst

PDHAPI_SAVE_DIR

~/Pictures/pdhapi-out

PDHAPI_INPUT_ROOT

可选的参考图根目录;未设置时可读取用户传入的本地图片路径

PDHAPI_DOWNLOAD_HOSTS

允许下载图片的额外精确域名,逗号分隔;默认仅接口主机

PDHAPI_TIMEOUT_SECONDS

单次调用超时,默认 300,范围 1–900

response_format 默认 b64_json,避免依赖图片链接的可达性。如果渠道只返回 URL,需将可信图片 CDN 的精确域名加入 PDHAPI_DOWNLOAD_HOSTS。下载只接受公开 HTTPS 地址,不携带 PdhAPI Key,不跟随重定向,拒绝私网、回环和 fake-IP。使用代理软件时需确保 CDN 正常解析到真实公网地址。

参考图只接受非动画 PNG、JPEG、WebP,单张最多 30 MiB、16 百万像素。输出使用随机文件名,不覆盖已有图片。单个服务进程内图片任务按队列串行执行;多个客户端启动的独立进程之间没有共享队列。

计费与故障

图片请求会消耗 PdhAPI 额度,批量编辑每张都可能单独计费。软件不硬编码价格,请以 PdhAPI 模型广场和账户用量为准。

  • 超时、502 或连接断开:不会自动重发。请求可能已经到达上游,请先查用量,避免重复扣费。

  • 401/403:检查 Key 和账号权限;insufficient_user_quota 表示账户余额不足,增加令牌额度不能替代给账户充值。

  • 429:检查余额、频率或上游限流。

  • 生成成功但下载失败:可能已扣费;检查 CDN 配置,避免直接重新生成。

  • 批量部分失败:先查看 completed 和 failed_index,已完成文件保留,不会整批重跑。

  • 客户端主动超时:将客户端工具等待时间调大。安装器将 Codex 工具超时设为 900 秒;大批量任务可能更长,建议分批执行。

本版没有自动重试、自动模型切换、内置代理订阅、自动升级或主站配置修改功能。

开发和发布

npm ci
npm run check
npm test
npm pack

npm pack 生成 pdhapi-image-mcp-0.2.1.tgz。用户也可下载 Release 包再全局安装:

npm install -g ./pdhapi-image-mcp-0.2.1.tgz
pdhapi-image-mcp install --client codex --key-file /absolute/path/to/private-key.txt

目前尚未发布 npm 包,不要把 npx pdhapi-image-mcp 当成已经可用的安装方式。

推送与 package.json 版本匹配的 v* 标签时,发布流程会创建 GitHub Release(正式版),附带 npm 安装包、一键安装脚本和 SHA256 校验文件。它不会自动发布到 npm。

来源和许可证

功能设计参考 micu-image-mcp,本项目独立实现,并未复制或改名分发该项目源码。参考说明见 NOTICE.md。本项目自己的源码采用 MIT License。

Available Tools

5 tools
image_batch_editB

Edit up to 10 local images sequentially with one prompt. Each image uses paid quota. Stops on first failure and reports completed files.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo1024x1024
modelNo
promptYes
api_keyNo
qualityNo
image_pathsYes
response_formatNob64_json

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds important behavior beyond annotations: sequential processing, paid quota consumption, stop-on-first-failure, and reporting of completed files. This complements the readOnly=false annotation without contradicting it. Could still note API-key/auth requirements more explicitly, but the added context is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence front-loads the core capability, then adds cost and failure behavior without filler. Every clause adds new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and zero parameter descriptions, the tool needs more context to be invoked correctly—especially since optional fields like api_key, model, quality, and response_format are unexplained. 'Reports completed files' is too vague about the return payload; missing parameter semantics make the definition incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must carry parameter meaning. It only clarifies image_paths (up to 10 local images) and prompt ('one prompt'), while leaving size, model, api_key, quality, and response_format unaddressed. This is insufficient for 7 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Edit' and resource 'local images' with a hard cap of 10, making the batch intent clear. It does distinguish from a single-image edit by quantity, but never names sibling tools like image_edit or image_multi_reference, so the differentiation is implied not explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No sentence tells the agent when to choose this tool over image_edit, image_generate, or image_multi_reference. The batch/10-image wording implies a multi-image use case, but there are no explicit exclusion criteria or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_editB

Edit one local PNG/JPEG/WebP through PdhAPI. The reference image is uploaded. Uses paid quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
sizeNo1024x1024
modelNo
promptYes
api_keyNo
qualityNo
image_pathYes
response_formatNob64_json

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, so mutation is already implied, but the description adds meaningful context beyond annotations: the reference image is uploaded and the operation consumes paid quota. This is useful cost and data-flow information that is not present in the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with no filler. The action is front-loaded, and each sentence adds distinct information: the operation, the upload behavior, and the cost implication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no output schema and no parameter descriptions, this description is far too sparse. It lacks any information about the editing prompt, return format, how the image is processed, or how parameters interact. An agent would struggle to call this tool correctly based solely on the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It only vaguely refers to a 'reference image', which maps loosely to image_path, but all other parameters (prompt, size, n, model, quality, response_format, api_key) remain completely unexplained. This is a severe gap for a tool with 8 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Edit one local PNG/JPEG/WebP through PdhAPI.' It clearly identifies the tool's core function and hints at single-image scope with 'one local', which loosely distinguishes it from batch and multi-reference siblings. However, it does not explicitly name or contrast any sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use image_edit versus image_generate, image_batch_edit, or image_multi_reference. The note about a reference image being uploaded implies editing an existing image, but there is no explicit selection rule or exclusion of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_generateB

Generate images using PdhAPI. This uses paid API quota. Returns local files and image previews. Do not retry automatically after a timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
sizeNo1024x1024
modelNo
promptYes
api_keyNo
qualityNo
response_formatNob64_json

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that calls consume paid API quota, which signals non-idempotency and cost, and that output is local files and previews. It also warns against automatic retries after timeout, adding operational behavior beyond the annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each carrying distinct information: purpose, cost, output, and retry guidance. It is front-loaded with the primary action and has no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is incomplete for a 7-parameter tool with no output schema: it doesn't explain parameter meanings, response structure, or how to access the local files/previews. It covers cost and retry but misses critical invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should compensate by explaining parameters, but it doesn't mention any of the 7 parameters. Names like n, response_format, and quality are left to the agent's guesses, so the description adds no semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (generate images) and resource (PdhAPI). The verb 'generate' distinguishes it from the sibling edit/batch tools, though it doesn't explicitly mention alternative tools. Purpose is clear enough for an agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs the sibling tools (image_edit, image_multi_reference, image_batch_edit). The only usage note is a retry policy, which is not about tool selection. Agents are left to infer from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_multi_referenceB

Generate an image from 2-10 local reference images, uploaded together. Uses paid quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo1024x1024
modelNo
promptYes
api_keyNo
qualityNo
image_pathsYes
response_formatNob64_json

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds 'Uses paid quota,' a material cost disclosure not present in the annotations. It does not mention output behavior, upload/storage implications, or failure/rate-limit behavior; annotations already cover read-only/idempotency/destructive traits, so the additional burden is modest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core operation and key constraint, followed by the cost warning. No filler or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite seven parameters and no output schema, the description doesn't specify expected output, quality/model semantics, or how to handle the paid quota; it only states the input constraint. An agent would need to guess at substantial behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, but it only clarifies image_paths semantics (local 2-10 reference images uploaded together). It leaves prompt, size, model, quality, response_format, and api_key unexplained beyond their schema names/types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly identifies the operation: generate an image from local reference images, with the count bound 2-10 and the upload requirement. This differentiates it from image_generate/image_edit by input mode, though it never names a sibling or explicitly distinguishes from image_batch_edit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the appropriate use case: when the agent has 2-10 local reference images to use as inputs. It provides no exclusion criteria or explicit guidance on choosing among image_generate, image_edit, and image_batch_edit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_infoA
Read-only

Read PdhAPI configuration without revealing keys or contacting the provider.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, and the description aligns by saying 'Read'. The description adds valuable behavioral guarantees: it will not reveal keys and will not contact the provider, which goes beyond the annotation. This provides useful context about safety and external dependencies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the action, the resource, and the key constraints without any filler. Every word earns its place, and the critical safety qualifier ('without revealing keys') is placed early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is fully complete. It states what the tool does and its behavioral limits, leaving no ambiguity about invocation or expected results. The annotations reinforce the read-only nature, and the description covers everything else needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to explain any. According to the calibration, a baseline of 4 is appropriate for 0-parameter tools. The description adds nothing about parameters because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read'), a clear resource ('PdhAPI configuration'), and adds a distinguishing constraint ('without revealing keys or contacting the provider'). This makes the tool's purpose unmistakable and differentiates it from the unrelated image tools in its sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. However, since the sibling tools are all image-generation/editing tools, there is no ambiguity about when this tool applies. Still, no explicit when/when-not guidance is provided, so the score reflects that it is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.2.0
    • Changedimage_batch_edit1 field changed
      • addedInput schema / properties / api_key
        Added value: +{
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedimage_edit1 field changed
      • addedInput schema / properties / api_key
        Added value: +{
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedimage_generate1 field changed
      • addedInput schema / properties / api_key
        Added value: +{
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedimage_multi_reference1 field changed
      • addedInput schema / properties / api_key
        Added value: +{
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
  2. 5 tool updatesv0.1.0
    • First observedimage_batch_edit
    • First observedimage_edit
    • First observedimage_generate
    • First observedimage_multi_reference
    • First observedserver_info

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: generation from text, editing a single image, multi-reference generation, batch editing, and server configuration. No overlap or ambiguity between them.

Naming Consistency4/5

Most tools follow the image_ prefix with descriptive verbs (generate, edit, multi_reference, batch_edit). server_info deviates from the prefix but is still clear and uses consistent snake_case.

Tool Count5/5

Five tools is an appropriate scope for an image generation/editing server, covering the primary workflows without bloat.

Completeness4/5

The surface covers generation, single edit, multi-reference, and batch operations. Missing a delete or quota-check tool, but these are not critical gaps given the local file handling and server_info.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Generates and edits images using OpenAI GPT Image or Google Gemini models, saving every result to disk and returning local file paths so AI assistants can continue working with the images. It enables prompt-based image creation, editing, inpainting, multi-image composition, and model listing through MCP tools.
    1
    7 npm
    1
    Apache 2.0