Skip to main content
Glama

OpenRouter GenImage Kote for Claude Code

openrouter-genimage-kote 是一个原生 Claude Code 插件,可通过 OpenRouter 生成和编辑栅格图像。图生图是主要工作流:插件可以在改变姿势、服装、背景、光照或风格的同时保留角色或物体,并且最多可使用 16 个有序参考。文生图适用于不需要视觉参考的新素材。

该插件直接连接到固定的 OpenRouter API 源。它没有代理模式、KoteGateway、可配置的 API 源、路由选择,也不依赖外部图像代理。

Claude Code
    -> bundled local stdio MCP server
    -> direct HTTPS
    -> https://openrouter.ai/api/v1/
    -> generated file inside the primary project root

环境要求

  • Claude Code 2.1.216 或更高版本。2.1.216 是受支持的最低版本,因为该插件依赖于修正后的插件技能命名空间行为以及安全的 userConfig 处理。开发验证固定使用 Claude Code 2.1.241。

  • Node.js 20 或更高版本,并可作为 node 使用。

  • 一个个人 OpenRouter API 密钥。

  • 一个精确的 OpenRouter 图像模型 ID,且该模型支持所请求的操作和参数。

  • 可选:用于完整账户额度信息的 OpenRouter 管理密钥。

MCP 根目录刷新行为本身需要 Claude Code 2.1.203+,但出于上述原因,此插件有意将最低版本提高到 2.1.216。

Related MCP server: openrouter-imgen-mcp

从 marketplace 安装

在 Claude Code 中添加 GitHub marketplace:

/plugin marketplace add koteyye/openrouter-genimage-kote-claude-code

安装插件:

/plugin install openrouter-genimage-kote@kote-plugins

该插件默认禁用,因为图像生成可能会产生费用。请打开 /plugin,配置下面描述的四项选项,然后显式启用插件。请在交互式插件 UI 中输入秘密:不要在 shell 命令中放置真实的 API 密钥,否则它可能被保留在 shell 历史中。

配置完成后重新加载插件组件:

/reload-plugins

然后检查 MCP 状态:

/mcp

openrouter-images 服务器应已连接并公开三个工具。

配置

启用插件后,Claude Code 会提示输入以下 userConfig 值:

设置

必需

敏感

用途

openrouter_api_key

个人密钥,用于模型发现、生成以及 /key 使用量数据

openrouter_management_api_key

仅用于 /credits;如果不可用则留空

image_model

精确的 OpenRouter 图像模型 ID;这些工具无法覆盖此值

output_directory

项目相对目录;默认为 assets/generated(输出目录)

敏感值会通过 Claude Code 的安全存储进行脱敏和保存。插件只能在其本地 MCP 进程中通过环境变量接收这些值。空的管理密钥被视为不存在。

这里刻意没有 baseUrl、endpoint、routing、provider 或 proxy 设置。功能不能选择网络路由,也不能静默选择另一个图像模型。

工具

MCP 工具

用途

确认

openrouter_edit_image

编辑、变换、变体或匹配一个或多个图像

每次调用都需要确认

openrouter_generate_image

创建没有参考的新图像

每次调用都需要确认

openrouter_balance

读取密钥使用量/限额以及可选的账户额度

无需付费工具确认标注

Claude Code 工具名称在运行时会被命名空间化。余额技能限定为预期名称 mcp__plugin_openrouter-genimage-kote_openrouter-images__openrouter_balance, 该名称在技能以及 Claude Code 2.1.241 的检查中使用,并在技能与静态检查中固定显示。其出现在实时工具列表中仍是一个交互式发布门禁。

这两个付费工具都会在 _meta 中发布 "anthropic/requiresUserInteraction": true,因此 Claude Code 必须在每次生成或编辑调用之前寻求用户的明确批准。MCP 服务器不会实现自己的提示,也不会在 MCP 传输之外读取 stdin。

主图功能: 主要工作流程

请 Claude 编辑工作区中的某个路径:

Make the background transparent in assets/character.png and save the result as
assets/character-transparent.png. Preserve the character, clothing, proportions,
and illustration style.

Claude 应该使用 project_file 引用调用 openrouter_edit_image。本地 PNG、JPEG 或 WebP 会按真实路径、大小和 magic bytes 进行验证,然后以 base64 数据 URL 的形式在内存中发送。源文件不会被修改。

对于迭代编辑,请引用上一次工具调用返回的路径:

Create another variation of assets/generated/character-in-tavern.png with
evening lighting. Keep everything else as close as possible.

使用公共 HTTPS 引用

Use https://example.com/reference.webp as the visual reference and create a
matching inventory icon with a transparent background.

只接受无凭据的公共 https:// URL。Localhost、回环地址、链路本地地址、元数据地址,以及 http:file:data:blob:javascript: 输入都会被拒绝。显式的 HTTPS 引用会按原样传递给 OpenRouter;插件不会向该 URL 附加任何授权信息。

多个有序引用

Use assets/references/girl.png for identity and face,
assets/references/outfit.png for clothing only, and
https://example.com/style.webp for palette and lighting. Preserve that order.

Claude 在提示中描述每个参考的用途,并按相同顺序传递这些信息。插件不会对它们进行排序、合并、删除或重新解释。第一个参考通常是主要的主体。

粘贴到聊天中的图像

公共 MCP 接口仅接受可访问的 workspace 路径或公共 HTTPS URL。如果图像被粘贴到 Claude Code 中,但模型没有暴露具体可用的路径,Claude 不得伪造路径,也不得搜索 Claude Code 缓存。请先将附件保存到项目中,例如保存为 assets/references/source.png,然后提供该路径,或提供一个公共 HTTPS URL。

如果支持 Claude Code 版本提供了具体路径,那么只有当它通过 MCP 根限制验证后,才会被视为正常的 project_file

文字生成图像

仅当没有可用于影响结果的现有视觉时,才使用 text-to-image:

Create a 1:1 inventory icon of one healing potion, centered with generous
padding, readable at small size, no text, transparent background, PNG.

默认生成一个结果。请明确要求多个替代方案;n 可从 1 到 10,额外的图像可能会增加费用。如果请求的模型支持,则长宽比、背景、格式、分辨率、质量、压缩和种子将作为参数传递。

交付付费请求之前,服务器会先发现模型能力。它会本地拒绝不支持的图像输入/输出或参数,并且绝不会回退到另一种模型。付费的 POST /images 不会被自动重试,因为上游计费状态可能未知。

输出目录

输出结果只会写入 CLAUDE_PROJECT_DIR 内部,即使有一个来自附加 MCP 根的 源路径。路径始终是项目相关的。现有文件永远不会被覆盖;如果冲突,会追加数字后缀。写入操作会使用完成且已同步的临时文件,然后在该目录中发布一个原子的不冲突,且不会任何现有文件。

MCP 会返回一段简洁的文本以及结构化内容,包括操作、模型、已请求/为止返回、已使用/可用阈值、可选成本、保存的路径、MIME 类型、字节大小和警告。它绝不会返回完整的图像字节、base64、提示或凭据。如果某些返回的项目无效,则已有效的图片会保存,结果会报告部分成功。如果 OpenRouter 未提供 usage.cost,插件会报告未提供 cost,而不是显示 0。

生成后,Claude 必须 报告确切的保存路径,并在描述视觉内容之前检查文件。该路径可用作下一个图像生成参考。

工作区根目录

输入路径解析为 CLAUDE_PROJECT_DIR。只允许在绝对路径为当前 MCP 根目录内的实际文件时才允许绝对路径。根 目录包括主项目以及使用 --add-dir/add-dir 或 Claude Code 额外目录设置添加的附加目录。服务器会 在 notifications/roots/list_changed 刷新内存中的根目录。

附加根目录对于插件是只读的:所有生成的输出都保留在主项目内。对于输入和输出路径,都不允许路径穿越或 symlink 逃逸。

余额与额度

运行原生命名空间技能:

/openrouter-genimage-kote:openrouter-balance

你也可以请请求“检查我的 OpenRouter 余额”。该技能会立即调用 openrouter_balance,不会启动图像生成。

GET /key 会报告当前 API 密钥的使用情况/限制。它的 limit_remaining 值是 剩余的 API 密钥使用限制,不是整个 OpenRouter 账户余额。如果配置了管理密钥——或当前密钥明确标识其为管理密钥——插件还会再调用一次 GET /credits,并返回总额度、总账户使用量以及差异。如果调用失败,会报告为不可用,同时成功的额度信息仍然可见。余额响应不会缓存。

安全与网络安全行为

  • 所有经过认证的生产请求均通过 HTTPS 直接访问 https://openrouter.ai/api/v1/

  • 重定向会被拒绝,防止授权信息传递到目标重定向。

  • 不会自动读取代理环境变量;没有全局 fetch 拦截、代理 dispatcher、gateway bootstrap 或路由标记。

  • API 密钥通过环境变量传递给本地进程,而不是使用命令行参数或插件文件。

  • 日志以脱敏的 JSON 行输出到 stderr,日志不包含完整输入、密钥、授权标头、base64、二进制图片或完整上游响应体。

  • 本地参考限制:每个最多 20 MiB,总 50 MiB,最多 16 个图像。默认,响应/解码图片的总字节限制为 128 MiB。

  • 公共 HTTPS 引用会随付费请求一起交给 OpenRouter 使用。必须使用你有权共享的 URL。

请参阅 SECURITY.md 报告安全问题和获得完整安全信息。

版本 0.1.0 限制

如需进一步查看,请参见 0.1.0。0.1.0 不支持蒙版、交互式内绘、像素级编辑、内部图片,未文档化的 Claude 图像缓存、SVG 输出、PDF/GIF/HEIC/TIFF/BMP/ICO 输入,视频、LoRA 训练、流式生成、插件 UI、对象存储、外部图像代理、自动缩放或自动购买 功能。回声,机器模型,目前只支持 IsGenerator。图像模型:保留和种子不能保证完全相同像素或完全可复现结果。

故障排除

MCP 服务器已断开

  1. 确认 node --version 返回的版本是 20 或更高。

  2. 确认 Claude Code 版本是 2.1.216 或更高。

  3. 打开 /plugin,确认插件已启用且所有必需选项均已填写。

  4. 执行 /reload-plugins,然后执行 /mcp

  5. 检查 Claude Code 的调试输出和 MCP stderr。绝不要把未脱敏的 key 粘贴到 issue 中。

配置错误

打开 /plugin 并 修正 API key、图像模型 ID 和输出目录。是指服务器的所有工具都会注册,即使初始配置错误;调用会返回 GENIMAGE_CONFIG_INVALID,而不会移除 MCP 传输。

引用被拒绝

使用 PNG、JPEG 或 WebP,并确认文件位于 MCP 根目录下且小于 20 MiB。要添加另一个目录,请通过 Claude Code 而不是从立场所代理复制外部绝对路径。如果要粘贴图像,请先保存到项目中。

模型或参数不支持

选择支持图像输出的精确 OpenRouter 模型;图像生成还需要参考,并且 reference 必须合法。删除不支持的参数或自行设置模型。插件不会自动选择替代模型。

输出已存在

请选择一个不同的项目相对路径。该插件有意不覆盖现有文件。

更新和移除

刷新 marketplace 并更新插件:

/plugin marketplace update
/plugin update openrouter-genimage-kote@kote-plugins
/reload-plugins

卸载它:

/plugin uninstall openrouter-genimage-kote@kote-plugins

该插件本身不存储 API 密钥。卸载后生成的项目文件仍会保留;如果不再需要,应由用户手动删除。

开发与验证

npm ci
npm run ci

构建仅使用本地 esbuild,不发起任何网络请求,最终生成一个不包含 source map 的 Node 20 ESM 文件:plugins/openrouter-genimage-kote/dist/mcp-server.mjs。插件运行时不需要相邻的 node_modules 目录。

显式运行当前固定的 Claude Code 校验器:

npx --yes @anthropic-ai/claude-code@2.1.241 plugin validate ./plugins/openrouter-genimage-kote --strict
npx --yes @anthropic-ai/claude-code@2.1.241 plugin validate . --strict

npm run validate:plugin 始终执行静态 manifest、skill、禁止路由和密钥(secret)检查。当 npm 缓存中已有对应包时,它还会运行固定的 CLI;这条自动路径是离线的。CI 会显式调用固定的校验器。

npm run smoke:marketplace 会将 marketplace 和插件复制到临时缓存目录中,不会修改真实的 Claude 配置。设置 RUN_CLAUDE_MARKETPLACE_SMOKE=1 后,即可在隔离的临时配置和插件目录中,使用 Claude Code 2.1.241 添加/安装/列出/卸载本地 marketplace。

真实的 OpenRouter 测试需要付费,默认是禁用的:

RUN_OPENROUTER_E2E=1 \
OPENROUTER_API_KEY="<enter through a secure CI secret or local environment>" \
OPENROUTER_IMAGE_MODEL="provider/model-id" \
npm run test:e2e

一个可选的管理密钥(management-key)额度测试还会读取 OPENROUTER_MANAGEMENT_API_KEY。请勿将真实凭据放入已提交的文件或命令历史中。

CI 已配置为支持 Ubuntu、macOS 和 Windows。自动化检查覆盖 source、protocol、integration、bundle、manifest 以及隔离的 marketplace 行为。交互式 /mcp、slash-skill 发现、每次调用的确认对话框,以及付费图像质量仍是发布门禁检查;不要因为源码构建成功,就推断这些检查都已经执行过。

许可证与署名

本项目以 MIT 许可证发布。平台无关的部分在源码层面改编自 openrouter-genimage-kote-opencode 的提交 fd1e29d4a740d1765ce69b80aceb722cec0a9258b,该项目同样采用 MIT 许可证。完整的依赖与复用声明见 THIRD_PARTY_NOTICES.md

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Generate images with any major model — one API key, one prepaid balance, one MCP.

  • Image, video, audio, face-swap, talking avatars and chat across 300+ AI models, one balance.

  • Generate AI images, video, speech, music and presentations from Claude, ChatGPT and Cursor.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/koteyye/openrouter-genimage-kote-claude-code'

If you have feedback or need assistance with the MCP directory API, please join our Discord server