关于 idml-mcp
idmlkit 及其 idml-mcp 服务可让 AI Agent 检查和修改 Adobe InDesign IDML 文件,无需安装 InDesign。它提取版面内容摘要,并针对性修改文本或图像链接,同时保留无关 XML。
主要功能
- 01汇总页面、故事、框架、图像和样式
- 02读取带索引文本段的故事文本
- 03替换单个文本段
- 04更换图像链接且不改几何布局
- 05提供 CLI 和核心库
适用场景
- 01更新设计目录中的文本
- 02翻译文本段并保留样式
- 03替换 IDML 文件中的链接图像
- 04在 Agent 工作流中检查版面内容
MCP 相关
idml-mcp 通过 stdio 向 MCP 客户端提供 IDML 摘要、故事文本读取、文本替换和图像链接更换功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| path | string | 是 | .idml 文件的路径 |
详细介绍
idmlkit
面向 Adobe InDesign 文件(IDML)的 AI 原生工具包 — 可解析、摘要并安全写回。无需 InDesign。
AI 工具改变了我们编写代码和构建网页的方式,但印刷和版面设计人员基本被排除在外:InDesign 生态系统没有面向 AI 的开放接口。现有的 InDesign MCP 服务都会远程控制一个正在运行的 InDesign 实例——这意味着每次操作都需要许可证、一台桌面电脑和一个已打开的应用。
idmlkit 另辟蹊径:它直接处理 .idml 文件(InDesign 基于 XML 的开放交换格式)。这意味着它可以在任何能运行 Node.js 的环境中运行——服务、CI 管道、Linux、设计师的笔记本电脑——无需安装任何 Adobe 软件。
JSON data in ──► idmlkit ──► perfectly laid-out IDML out ──► open in InDesign / print
设计理念:AI 永远不会接触 XML
大模型擅长理解文档并判断应该修改什么,却不擅长手动编辑 5,000 行版面 XML 而不出错。因此,idmlkit 将工作拆分开来:
- 确定性代码负责解析文件包,并生成精简、适合大模型处理的摘要(页面、框架、以索引文本片段表示的故事、图像链接、样式)——只需几百个 token,而不是数 MB 的 XML。
- 写回操作精准且局部:替换文本片段或重新链接图像时,只通过定向字符串操作重写对应元素。其他所有内容——几何信息、样式、XML 格式本身——都会逐字节保留(由测试强制验证)。AI 无法从根本上破坏版面。
已使用真实的 InDesign 2025 导出文件进行验证:在 Adobe 官方 Flex Layout 示例(14.5 MB,包含一个 20 MB 的跨页版面)上,摘要生成时间不到半秒;文本编辑只会更改一个 zip 条目,且已通过 CRC 验证其他所有条目逐字节完全一致。
软件包
| 软件包 | 说明 |
|---|---|
idmlkit | 核心库 + CLI:打开、生成摘要,以及安全写回文本/图像 |
idml-mcp | MCP 服务,将这些功能提供给 Claude 和任何兼容 MCP 的 Agent |
快速开始
npm install
npm run build
node scripts/make-sample-idml.mjs # generates examples/sample.idml
CLI
$ node packages/idmlkit/dist/cli.js summary examples/sample.idml
Pages: 1 Spreads: 1
Story u123 (11 words, 2 runs): Spring Catalog 2026 Fresh arrivals for the new season…
Image link u202: file:/images/hero.jpg
Paragraph styles: $ID/NormalParagraphStyle, Headline, Body
$ node packages/idmlkit/dist/cli.js set-text examples/sample.idml u123 0 "Summer Sale 2026" -o out.idml
$ node packages/idmlkit/dist/cli.js relink out.idml u202 "file:/images/summer.jpg"
MCP 服务(Claude Code / Claude Desktop)
{
"mcpServers": {
"idml": {
"command": "node",
"args": ["<repo>/packages/idml-mcp/dist/server.js"]
}
}
}
然后可以向 Claude 提出类似 “总结 catalog.idml,并将所有 2025 日期替换为 2026” 的请求——它会使用这些工具:
| 工具 | 用途 |
|---|---|
idml_summarize | 页面、框架、故事、图像和样式的结构化摘要 |
idml_get_story | 一个故事的纯文本 + 带样式的索引片段 |
idml_set_text | 替换一个片段的文本(版面完全不动,逐字节保留) |
idml_relink_image | 将图像链接指向新文件(几何信息完全不动) |
库
import { IdmlDocument, summarizeDocument, setStoryRunText } from "idmlkit";
const doc = await IdmlDocument.open("catalog.idml");
console.log(summarizeDocument(doc)); // LLM-friendly JSON
setStoryRunText(doc, "u123", 0, "New headline");
await doc.save("catalog-updated.idml");
使用场景
- 数据库出版:用产品数据填充设计好的模板——无需打开 InDesign,就能生成数千页目录、价目表或菜单。
- 本地化:提取所有带样式的文本片段,完成翻译后安全写回。
- Agent 工作流:让 Claude 读取版面、理解内容,并将文本/图像更新作为更大工作流的一部分执行。
路线图
- 读取 IDML 文件包,生成适合大模型处理的摘要
- 安全替换文本片段并重新链接图像
- MCP 服务(stdio)
- 页面 → 框架映射及几何信息(各框架的位置)
- 填充模板:一次调用即可将 JSON 数据对象应用于带标签的模板
- 故事级结构化差异(两个 IDML 文件之间有哪些变化)
- 溢出启发式检测(新文本可能无法适配框架时发出警告)
- 真实世界 IDML 文件集测试(CC 2018–2026 导出文件)
开发
npm install
npm run build # tsc project references
npm test # vitest — includes byte-for-byte preservation tests
许可证
MIT。与 Adobe 无关联,也未获其认可。“Adobe”和“InDesign”是 Adobe Inc. 的商标,此处仅用于描述兼容性。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。