genmux MCP 服务器:在 Claude、Cursor 和 OpenCode 里出图
2 分钟阅读作者 genmux API Team
Model Context Protocol(MCP)是把一组工具交给 AI 助手的标准做法:一个小服务器暴露出函数、资源和提示模板,任何 MCP 客户端——Claude Desktop、Claude Code、Cursor、OpenCode、Continue、Windsurf——都能在对话中途调用它们。@genmux/mcp 就是 genmux 的这个服务器:接上之后,「给价格页做一张 16:9 的主视觉,但先告诉我要花多少钱」就是你打给助手的一句话,而不是你要写的一段脚本。
安装:一条命令
服务器是一个 npm 包,用 npx 按需运行。唯一必填的配置是你的密钥:
GENMUX_API_KEY=nb_live_... npx -y @genmux/mcp环境变量:
| 变量 | 默认值 | 用途 |
|---|---|---|
GENMUX_API_KEY | ——(必填) | 你的 genmux 密钥;不会离开你的机器 |
GENMUX_API_BASE | https://api.genmux.tech/v1 | 指向预发环境时覆盖 |
GENMUX_OUTPUT_DIR | ./genmux-images | 当被要求保存时,generate_image 把文件写到哪里 |
你不用手动运行它;由客户端来启动。你要配置的是客户端。
各客户端代码片段
Claude Code 与 Claude Desktop
claude mcp add genmux -e GENMUX_API_KEY=nb_live_... -- npx -y @genmux/mcpCursor —— 项目里的 .cursor/mcp.json(或 Cursor 设置里的全局那份):
{
"mcpServers": {
"genmux": {
"command": "npx",
"args": ["-y", "@genmux/mcp"],
"env": { "GENMUX_API_KEY": "nb_live_..." }
}
}
}OpenCode —— 在 opencode.json 里与 provider 块并列的一个 mcp 块:
{
"mcp": {
"genmux": {
"type": "local",
"command": ["npx", "-y", "@genmux/mcp"],
"environment": { "GENMUX_API_KEY": "nb_live_..." }
}
}
}Continue —— 写在 config.yaml 里:
mcpServers:
- name: genmux
command: npx
args: ["-y", "@genmux/mcp"]
env:
GENMUX_API_KEY: nb_live_...托管接入点,给没有 shell 的客户端
有些客户端无法拉起本地进程——浏览器里的助手、被严格管控的笔记本,或者不愿意把密钥散布到各处配置文件里的团队。对它们来说,同一个服务器以 Streamable HTTP 托管在 https://mcp.genmux.tech/mcp,用密钥作为 Bearer token 认证:
{
"mcpServers": {
"genmux": {
"url": "https://mcp.genmux.tech/mcp",
"headers": { "Authorization": "Bearer nb_live_..." }
}
}
}在 Claude 的网页版和桌面版里,这对应一个填上该 URL 的「自定义连接器」。工具列表完全相同;区别只在密钥放在哪里。
服务器提供什么
工具——助手可以调用的:
| 工具 | 作用 |
|---|---|
list_models | 带价格的目录;kind 可按图像/文本模型过滤 |
estimate_cost | 在真正执行之前,算出一个请求要花多少积分 |
generate_image | model、prompt、resolution、ratio、n、negative_prompt、reference_images、save——提交任务、等待、返回 URL(打开 save 时还返回文件路径) |
get_generation | 按 id 取一个任务:状态、产出、费用 |
list_generations | 账户最近的任务 |
account_balance | 剩余积分 |
资源——助手可以读进上下文的文档:genmux://docs/llms.txt、genmux://docs/openapi.yaml、genmux://models,以及 genmux://snippets/python、/node、/curl、/openai-sdk 下的代码片段。
提示模板——两个:integrate-genmux(带着助手把 API 接进你的代码库,会用到那些片段)和 pick-a-model(问对问题,然后推荐一个模型和分辨率)。
这里刻意没有 chat 工具。你的助手本身就是一个对话模型;如果你想在里面用 DeepSeek 或 Qwen3,那走的是兼容 OpenAI 的接口,而不是 MCP——见 OpenCode 或 Continue 那两篇。
一个完整例子
在 Claude Code 里接好服务器,项目中有一个 public/ 目录:
你: 我需要一张价格页的主视觉——干净的等距插画,堆叠的硬币正在化成像素,深色背景,16:9。 用 nanobanana。先估个价,我说可以之前别生成。
助手会用 {"model": "nanobanana", "resolution": "1K", "ratio": "16:9", "n": 1} 调用 estimate_cost,然后回报:
助手: Nano Banana 上一张 1K 图片是 2 积分(按 Scale 单价约 $0.025);2K 版本需要 Nano Banana Pro,6 积分。你的余额是 1,184 积分。要按 1K 生成吗?
你: 好,保存到 public/hero-pricing.png。
它会带着 save: true 调用 generate_image,GENMUX_OUTPUT_DIR 指向 public/,等待任务完成(Nano Banana 在 1K 下几秒就好),然后带回文件路径、任务 id 和任务记录里的实际扣费。如果你要三个变体(n: 3),估价就变成 6 积分≈ $0.073 张 1K Nano Banana,助手应该在花掉之前先说出来。
一个好客户端应有的表现是:请求较贵时它会主动估价;你把模型名说得含糊(「那个 Pro 的」)时它会用 list_models;写集成代码之前它会去读 genmux://snippets/node,而不是凭空猜请求结构。最后这个习惯,integrate-genmux 提示模板把它写明了。
为什么这比一段 shell 脚本好
你当然可以把 curl 调用包成脚本让助手去跑。MCP 服务器多给了三样脚本给不了的东西:模型无需文档就能理解的带类型工具结构、作为一等步骤存在的 estimate_cost(这样助手会在花钱前先问),以及模型可以读来写出正确代码的资源。失败的任务会自动退款,所以助手把提示词写错不花钱——但助手在你只想要一张时生成了十张 4K 图,正是 estimate_cost 存在的理由。
开始使用
带上你的密钥执行 npx -y @genmux/mcp,配上上面任意一段客户端代码片段,你的助手就能列出模型、报出价格并生成图片,用的还是给 DeepSeek 和 Qwen3 付费的那个余额。模型详情和各分辨率价格见 Nano Banana 页面和价格页;MCP 页面保持着当前的工具列表和客户端片段,服务器封装的那套 REST API 记录在文档里。