mcpField
I
idml-mcp

idml-mcp

本地服务
github.com/jimprivate媒体与设计015 周前更新

关于 idml-mcp

idmlkit 及其 idml-mcp 服务可让 AI Agent 检查和修改 Adobe InDesign IDML 文件,无需安装 InDesign。它提取版面内容摘要,并针对性修改文本或图像链接,同时保留无关 XML。

主要功能

  1. 01汇总页面、故事、框架、图像和样式
  2. 02读取带索引文本段的故事文本
  3. 03替换单个文本段
  4. 04更换图像链接且不改几何布局
  5. 05提供 CLI 和核心库

适用场景

  1. 01更新设计目录中的文本
  2. 02翻译文本段并保留样式
  3. 03替换 IDML 文件中的链接图像
  4. 04在 Agent 工作流中检查版面内容

MCP 相关

idml-mcp 通过 stdio 向 MCP 客户端提供 IDML 摘要、故事文本读取、文本替换和图像链接更换功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jimprivate-idml": {
"command": "npx",
"args": [
"-y",
"idml-mcp"
]
}
}
}
启动命令npx -y idml-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmidml-mcp0.1.1

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring是.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-mcpMCP 服务,将这些功能提供给 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. 的商标,此处仅用于描述兼容性。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。