ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

即梦MCP实战:让Claude直接生成图片的MCP服务配置指南

即梦MCP实战:让Claude直接生成图片的MCP服务配置指南

1. 即梦MCP到底解决了什么问题:Claude生成图片的TypeScript桥接方案

Claude 在代码理解、长文推理上的表现确实能打,但聊到一半想让它顺手出张图,它只能回你一段画面描述,然后你切浏览器、开别的工具、复制提示词、下载图片、再切回来。整个链路割裂得厉害,尤其是做内容排版或者前端 mock 图的时候,来回折腾特别消耗注意力。

即梦MCP(Model Context Protocol)要干的事很直接:把火山引擎即梦 AI 的图像生成能力,包装成一个 Claude 能调用的工具。你在对话里说“帮我出一张 16:9 的新年海报,红底带烟花”,Claude 就会通过 MCP 协议把请求转给本地跑着的 TypeScript 服务,服务再去调即梦的 AI 图像 API,最后把图片链接返回给 Claude 展示。整个过程你不需要离开对话框。

MCP 本身是 Anthropic 推出的开放协议,你可以把它理解成“AI 助手的外设接口”。Claude 负责理解意图,MCP Server 负责执行具体动作——读写文件、查数据库、调 API 都行。即梦MCP就是专门做“文生图”这一件事的 Server。

这套方案适合谁?我梳理了三类:

第一类,日常用 Claude Desktop 或 Cursor 写代码、写文档,偶尔需要配图但不想切工具的人。第二类,做 TypeScript 开发,想拿一个结构清晰、代码量少的 MCP Server 当模板,改成自己业务 API 的开发者。第三类,做 AI 应用集成,需要把国产图像生成能力接进现有 Agent 工作流的技术团队。

它不适合什么场景?如果你要的是批量出图、精细控制每一张的构图参数、或者需要稳定商用授权链路,那还是走即梦官方控制台或者专门的图像工作流工具更合适。MCP 这条路的定位是“对话中顺手出图”,不是替代专业图像生产管线。

还有一个背景值得说清楚:即梦 AI 是字节跳动旗下的图像生成服务,在中文文字渲染和中国风元素理解上确实有优势。你让它画“新年快乐”四个字,它不会像某些模型那样把汉字画成鬼画符。这个特性在做中文海报、节日配图的时候很实用。

整条链路的技术栈是这样的:Claude 客户端(支持 MCP 的版本)→ MCP 协议 → 本地 Node.js 进程(即梦MCP Server)→ HTTPS 请求 → 火山引擎即梦 AI 图像 API → 返回图片 URL。你的 Access Key 和 Secret Key 只存在本地环境变量里,不经过 Claude 的服务器,这一点在安全上比较让人放心。

下面我会从环境准备开始,一步步带你把这个桥接跑通。中间会给出完整的 TypeScript 配置、Claude 客户端的 JSON 接入片段、以及验证出图的具体命令。如果你之前没接触过 MCP,也不用担心,我会把每个环节的“为什么”讲清楚。

2. 前置准备:TaoToken API Key与即梦MCP运行环境搭建

在开始配置即梦MCP之前,有一个容易被忽略但很关键的环节:你的 Claude 客户端本身需要能正常调用模型。如果你用的是 Claude Desktop 官方账号,这一步可以跳过;但如果你是通过 API 方式接入 Claude 能力(比如在 Cursor 或者自建 Agent 里),就需要一个稳定的 API 入口。

我目前用的是 TaoToken 作为模型调用的统一入口,它兼容 Anthropic 的 API 格式,配置起来比较省事。你可以先到官网了解一下:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。注册后在控制台创建一个 API Key,后面配置 Claude 客户端或者 Cursor 的时候会用到。

拿到 Key 之后,API 端点填https://taotoken.net/api就行。这个地址不加 UTM 参数,直接用于代码里的 Base URL。

接下来是即梦MCP本身的运行环境。你需要准备这些东西:

Node.js 18 或更高版本。即梦MCP是用 TypeScript 写的,编译和运行都依赖 Node。你可以用node -v检查版本,如果低于 18,建议用 nvm 或者官网安装包升级一下。

火山引擎账号,并且开通了即梦 AI 服务。到火山引擎控制台搜索“即梦”,进入服务页面开通。新用户一般有免费试用额度,足够你跑通验证流程。开通后在“访问控制”里创建 Access Key 和 Secret Key,这两个值待会要写进环境变量。

一个支持 MCP 的 Claude 客户端。Claude Desktop 从某个版本开始原生支持 MCP,Cursor 也在较新版本里集成了 MCP 配置入口。我用的是 Claude Desktop,下面的配置示例也以它为准,Cursor 的配置逻辑基本一致,只是配置文件路径不同。

把即梦MCP的代码拉到本地:

git clone https://github.com/comeonzhj/jimengpic-mcp.git cd jimengpic-mcp npm install npm run build

编译完成后,build/index.js就是 MCP Server 的入口文件。你可以先手动跑一下确认没有报错:

node build/index.js

如果进程正常启动并等待输入(没有立刻退出),说明环境没问题。按 Ctrl+C 退出即可。

这里有一个细节要注意:即梦MCP依赖两个环境变量JIMENG_ACCESS_KEY和JIMENG_SECRET_KEY。你可以在 shell 里临时 export,也可以写进 Claude 客户端的配置文件里。我推荐后者,因为 Claude Desktop 启动 MCP Server 时会读取配置里的 env 字段,这样不用污染全局环境变量。

如果你在 Cursor 里用,还需要确认 Cursor 的 MCP 功能已经开启。在 Settings 里搜索 MCP,确保相关选项是打开的。不同版本的入口位置可能不太一样,但关键词都是 MCP。

环境准备这块踩过的坑主要是 Node 版本和编译报错。如果你npm run build的时候报 TypeScript 类型错误,先确认npm install是否完整执行了。有时候网络问题会导致依赖装不全,删掉node_modules和package-lock.json重新装一次通常能解决。

3. 可复制配置:即梦MCP的TypeScript服务端与Claude客户端接入

这一节是整篇文章的核心,我会给出完整的配置文件片段,你直接复制改路径和 Key 就能用。

先看 Claude Desktop 的配置文件。不同系统路径不一样:

macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.json

如果文件不存在就新建一个。内容结构如下:

{ "mcpServers": { "jimengpic": { "command": "node", "args": ["/absolute/path/to/jimengpic-mcp/build/index.js"], "env": { "JIMENG_ACCESS_KEY": "你的AccessKey", "JIMENG_SECRET_KEY": "你的SecretKey" } } } }

三个关键点:command填 node 的绝对路径或者直接写node(确保在 PATH 里);args里填编译后的index.js绝对路径,不要用相对路径,Claude Desktop 启动时的工 作目录不一定是你以为的那个;env里放即梦的密钥。

如果你同时用 TaoToken 接入 Claude 模型能力,可以在同一个配置文件里加上模型相关的环境变量,或者在 Cursor 的模型设置里填 Base URL 和 API Key。TaoToken 的 API 端点用https://taotoken.net/api,Key 在控制台创建。这样你的 Claude 客户端既能调模型,又能通过 MCP 调即梦出图。

配置改完后重启 Claude Desktop。重启后可以在对话界面里看 MCP 工具是否加载成功。有些版本会在输入框旁边显示一个小图标,或者你直接问 Claude“你有哪些工具可用”,它会列出 jimengpic 相关的工具。

再来看即梦MCP服务端本身的 TypeScript 配置。项目根目录下有一个tsconfig.json,内容大致如下:

{ "compilerOptions": { "target": "ES2022", "module": "Node16", "moduleResolution": "Node16", "outDir": "./build", "rootDir": "./src", "strict": true, "esModuleInterop": true, "skipLibCheck": true }, "include": ["src/**/*"] }

这个配置不用改,直接npm run build就能编译。如果你要改代码,比如换一个图像 API 或者加新的工具方法,改完重新 build 再重启 Claude Desktop 即可。

package.json里的 scripts 部分也值得看一眼:

{ "scripts": { "build": "tsc", "start": "node build/index.js" } }

npm run build走 tsc 编译,npm start直接跑编译产物。调试的时候可以先用npm start在终端里跑,看有没有报错输出,确认没问题再配到 Claude Desktop 里。

关于 Model ID 的配置,如果你在 Cursor 或者自建客户端里需要指定模型,Claude 系列一般用claude-sonnet-4-20250514或者你账号可用的其他版本。TaoToken 的模型列表可以在控制台查看,选一个支持工具调用的模型就行。MCP 工具调用需要模型具备 function calling 能力,太老的模型可能不支持。

配置写完后,建议先用终端手动验证一次 MCP Server 能不能正常启动:

JIMENG_ACCESS_KEY="你的Key" JIMENG_SECRET_KEY="你的Secret" node build/index.js

如果没有报错并且进程保持运行,说明服务端没问题。接下来就是把它接到 Claude 里实际出图。

4. 验证请求:从Claude对话到即梦出图的完整调试过程

配置写好了,怎么确认它真的能出图?我给你一个完整的验证流程。

第一步,重启 Claude Desktop。确保配置文件保存后完全退出再打开,不是关窗口那种退出。macOS 上可以 Cmd+Q,Windows 上从托盘图标右键退出。

第二步,在对话里问 Claude:“你现在有哪些可用的 MCP 工具?”如果配置正确,它会列出 jimengpic 相关的工具,通常包括生成图片的方法。如果没列出来,说明 MCP Server 没加载成功,去检查配置文件路径和 JSON 格式。

第三步,直接下指令:“帮我生成一张 16:9 的新年快乐海报,红色背景,带烟花和灯笼元素。”Claude 会识别出这需要调用即梦MCP,然后弹出工具调用确认(有些版本会问你是否允许),确认后它会把请求发给本地 MCP Server。

第四步,观察返回结果。正常情况下,Claude 会展示一张图片或者一个图片链接。即梦返回的图片 URL 有时效性,通常是几个小时,所以看到图之后及时保存到本地。

如果你在终端里跑 MCP Server 的调试模式,可以看到更详细的日志。比如请求参数、即梦 API 的返回状态码、生成的图片 URL 等。这些日志对排查问题很有帮助。

我实测下来,从发出指令到看到图片,大概几秒钟到十几秒不等,取决于即梦服务端的排队情况。图片比例支持 4:3、3:4、16:9、9:16 这几种,你在指令里说清楚就行。如果不指定,工具可能会用默认比例。

提示词这块,即梦MCP做了一个智能组合:你不需要写很专业的 prompt,只要说清楚文字内容、配色、装饰元素,它会自动拼成即梦能理解的提示词。比如你说“新年快乐,红色背景,烟花”,它可能会组合成类似“字体设计:新年快乐,黑色字体,斜体,带阴影。干净的背景,白色到红色渐变。点缀浅灰色、半透明烟花、灯笼、祥云等元素插图做配饰插画”这样的描述。这个转换逻辑在 TypeScript 代码里可以看到,想自定义的话改起来也不难。

验证成功后,你可以试试更复杂的场景。比如让它生成一张带中文标题的技术博客封面图,或者一张产品原型用的占位图。即梦在中文文字处理上确实比很多模型稳,不会把字写歪或者写成乱码。

如果你同时用 TaoToken 接入 Claude 模型,整个链路就是:Claude 模型(通过 TaoToken 调用)理解你的意图 → 决定调用即梦MCP工具 → 本地 MCP Server 执行 → 即梦 API 出图 → 结果返回对话。你可以在一个界面里完成“想文案 + 出配图”的完整流程。

这里提醒一点:图片 URL 有时效,如果你要把图用到正式项目里,记得第一时间下载保存。另外即梦的免费额度用完后需要充值,具体价格以火山引擎控制台为准,我不在这里编造数字。

5. 常见报错排查:401、local proxy failed与reading choices的解决思路

配置过程中最容易卡住的几个报错,我逐个说下排查思路。

401 Unauthorized:这个最常见,基本是 Key 的问题。先确认JIMENG_ACCESS_KEY和JIMENG_SECRET_KEY有没有填错,注意不要有多余空格。然后确认火山引擎控制台里即梦服务是否已经开通,有时候 Key 是对的但服务没开通也会报 401。还有一个可能:Key 被禁用或者额度用完了,去控制台看下状态。

local proxy failed 或连接超时:这个报错通常出现在 MCP Server 尝试请求即梦 API 的时候。先检查你的网络能不能正常访问火山引擎的 API 端点。如果你在公司内网或者有防火墙限制,可能需要配置代理白名单。另外确认build/index.js的路径是对的,Claude Desktop 启动 MCP Server 失败时也可能报类似的错。可以在终端里手动跑node build/index.js看具体报错信息。

reading 'choices' 或类似 undefined 错误:这个报错一般出现在解析 API 返回结果的时候。可能原因是即梦 API 返回了非预期的结构,比如错误码被当成正常响应解析了。排查方法是在 MCP Server 代码里加日志,把原始返回打印出来看。常见触发场景是请求参数不合法,比如图片比例传了不支持的值,或者提示词为空。检查你发给 Claude 的指令是否包含有效内容。

OAuth 相关报错:如果你在 Claude 客户端里看到 OAuth 错误,通常和模型调用链路有关,不是即梦MCP本身的问题。检查你的 TaoToken API Key 是否有效,Base URL 是否填的https://taotoken.net/api。如果用的是 Claude Desktop 官方账号,确认登录状态正常。

MCP Server 加载失败但没明显报错:去 Claude Desktop 的日志目录看详细输出。macOS 在~/Library/Logs/Claude/下,Windows 在%APPDATA%\Claude\logs\下。日志里会记录 MCP Server 的启动过程和报错堆栈。

图片生成成功但 Claude 不显示:可能是图片 URL 的格式 Claude 客户端不支持预览。你可以让 Claude 把 URL 以文本形式输出,手动复制到浏览器打开。如果浏览器能打开,说明生成是成功的,只是展示环节的问题。

编译报错 Cannot find module:npm install没装全,删掉node_modules和package-lock.json重新装。如果还不行,检查 Node 版本是否满足要求。

排查的时候有一个通用方法:先在终端里手动跑 MCP Server,用 curl 或者 Postman 直接调即梦 API,确认 API 本身是通的。然后再通过 Claude 走 MCP 链路。这样能把问题范围缩小到“API 问题”还是“MCP 配置问题”。

如果你在 Cursor 里用,MCP 的报错信息通常会在 Output 面板的 MCP 相关频道里显示。Cline MCP 的配置格式和 Claude Desktop 基本一致,只是配置文件位置不同。Codex 的auth.json里如果配了自定义 Base URL,确认格式正确,不要有多余的逗号或者引号转义问题。

6. 长期使用建议与TaoToken接入文档

即梦MCP跑通之后,日常使用有几个小技巧可以让你更顺手。

提示词方面,虽然工具会自动组合,但你在指令里给的信息越具体,出图效果越可控。比如“红色背景”比“暖色调”更明确,“带烟花和灯笼”比“加点节日元素”更具体。即梦对中文理解好,你直接用中文描述就行,不需要翻译成英文 prompt。

图片比例根据用途选:16:9 适合博客封面和视频缩略图,4:3 适合传统配图,3:4 和 9:16 适合移动端和社交媒体。在指令里直接说“竖版 9:16”或者“横版 16:9”,Claude 会转成对应的参数。

如果你需要频繁出图,可以考虑把即梦MCP的代码改一改,加上批量生成或者本地保存的功能。项目结构很简洁,主要逻辑集中在一个 TypeScript 文件里,改起来门槛不高。比如你可以在返回结果里加一个自动下载图片到本地的步骤,省去手动保存的麻烦。

关于模型调用入口,如果你还没配好 Claude 的 API 访问,可以到 TaoToken 控制台创建一个 Key,Base URL 用https://taotoken.net/api。接入文档在这里:https://taotoken.net/doc ,里面有不同客户端的配置示例。API Keys 管理页面:https://taotoken.net/api-keys ,可以创建和吊销 Key。如果你主要在 Cursor 里写代码并且需要长期用 Claude 做 Agent 任务,可以看看 Coding Plan:https://taotoken.net/coding-plan ,按需选择就行。

想先试试模型对话效果的话,这里有一个入口:https://taotoken.net/chat 。Claude Code 相关的配置可以参考:https://taotoken.net/claude-code 。

回到即梦MCP本身,这个项目虽然 star 不多,但代码质量不错,该有的都有。它最大的价值是给你一个可运行的 MCP Server 模板,你完全可以照着它把其他国产 AI 服务(比如语音合成、OCR、翻译)也接进 Claude。MCP 生态现在还在早期,这种小而专的工具会越来越多。

最后说一个实际使用中的注意点:即梦返回的图片 URL 有时效,如果你要把图用到正式项目里,记得第一时间下载保存到本地或者上传到自己的图床。另外免费额度用完后需要到火山引擎控制台充值,具体计费规则以官方页面为准。

整个流程跑通后,你在 Claude 里就能完成“写文案 → 出配图 → 调整 → 保存”的闭环,不用再来回切换工具了。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进