iwork mcp
用于Apple iWork自动化的MCP服务器——113个用于数字、页面和主题演讲的工具。
一条线要安装。适用于Claude Desktop、Claude Code、Codex和任何MCP客户端。
它的作用
让Claude构建电子表格、编写文档和创建演示文稿——它通过苹果的JavaScript for Automation(JXA)脚本桥控制Mac上真正的iWork应用程序。
数字 --浏览内置模板(预算、发票、时间表等)或从头开始创建,读/写单元格和范围,设置公式(包括SUMIFS等跨表引用),排序行,合并单元格,格式化单元格(字体、颜色、背景、对齐方式、百分比和货币等数字格式),管理表格和表格,设置列宽和行高,一次性批量创建包含数据和格式的表格,导出到PDF/Excel/CSV。
页面 --浏览内置模板(简历、报告、信件、传单、时事通讯等)或从头开始创建,在一次通话中创建具有格式化内容的文档,在任何位置读取和插入文本,查找和替换(保留格式),格式化段落(字体、大小、颜色),插入图像和表格,导出到PDF/Word/EPUB。
主题演讲 --浏览可用主题或使用特定主题创建,在一次调用中使用多个完全配置的幻灯片(布局、标题、正文、注释、过渡)创建演示文稿,添加/删除/复制/重新排序/跳过幻灯片,从主幻灯片中选择幻灯片布局,阅读幻灯片内容,设置标题和要点,添加图像和形状,开始/停止幻灯片,导出到PDF/PowerPoint/HTML。
More examples
安装
克劳德桌面
npx iwork-mcp install然后重新启动克劳德桌面(Cmd+Q并重新打开)。完成。
克劳德代码
claude mcp add iwork -- npx -y iwork-mcp法典
codex mcp add iwork -- npx -y iwork-mcp需求
- macOS 13 Ventura或更高版本 (在macOS 14 Sonoma上测试)
- 数字、页面和主题演讲14.0+ (在14.5和15.1.1 Creator Studio上测试;从App Store免费)
- (
brew install node如果你有自制啤酒) - 首次使用时,macOS将要求授予自动化权限——单击“确定”
iWork 15.1+(创作者工作室):完全支持----在15.1.1(2026年2月)进行了测试。Creator Studio会自动检测并在可用时使用。Creator Studio订阅者将获得8个额外的AI工具(魔术填充、清理幻灯片、超分辨率、删除背景)。看 Creator Studio已知问题 以下为导出/保存为限制。
例子
用数字构建一个月度预算电子表格,包括收入、支出和净储蓄行。颜色正差绿色和负红色。
在Pages中为在三家公司、教育和技能部门有经验的软件工程师创建一份专业简历。
用6张幻灯片为第四季度业务回顾做主题演讲——亮点、收入、产品里程碑和路线图。在每张幻灯片上添加演示者笔记。
在~/Documents/budget.numbers打开我的预算电子表格,并为2月份添加新行。
用数字创建2026年的日历,每个月都有一张表,彩色标题和周末突出显示。
工具
数字(50个工具)
| 工具 | 说明 |
|---|---|
numbers_list_documents | 列出所有打开的文档 |
numbers_list_templates | 列出可用模板(例如个人预算、发票) |
numbers_create_document | 创建新的电子表格 |
numbers_open_document | 打开.numbers文件 |
numbers_save_document | 保存文档 |
numbers_export_document | 导出为PDF、Excel或CSV |
numbers_close_document | 关闭文档 |
numbers_list_sheets | 列出文档中的工作表 |
numbers_add_sheet | 添加新工作表 |
numbers_rename_sheet | 重命名图纸 |
numbers_delete_sheet | 删除工作表 |
numbers_list_tables | 列出带尺寸的表 |
numbers_add_table | 创建新表(可配置标题) |
numbers_rename_table | 重命名表 |
numbers_delete_table | 删除表格 |
numbers_read_table | 将所有数据作为二维数组读取 |
numbers_read_cell | 读取单个单元格 |
numbers_read_range | 读取特定单元格范围 |
numbers_get_table_info | 获取表元数据(名称、维度、位置) |
numbers_get_cell_format | 读取单元格的数字格式和对齐方式 |
numbers_move_table | 将表格移动到图纸上的新位置 |
numbers_write_cell | 将值写入单元格 |
numbers_write_cells | 批量写入多个单元格 |
numbers_write_table | 批量写入二维数组(快速) |
numbers_set_formula | 在单元格上设置公式 |
numbers_add_row | 添加包含可选数据的行 |
numbers_insert_row_at | 在特定位置插入行,向下移动现有行 |
numbers_add_column | 添加列 |
numbers_insert_column_at | 在特定位置插入列,将现有列向右移动 |
numbers_delete_row | 删除行 |
numbers_delete_column | 删除列 |
numbers_sort_rows | 按列对表排序 |
numbers_set_header_rows | 设置标题行数(0删除标题样式) |
numbers_set_header_columns | 设置标题列计数 |
numbers_merge_cells | 合并单元格区域 |
numbers_unmerge_cells | 取消合并单元格 |
numbers_clear_cells | 清除单元格内容 |
numbers_format_cells | 设置字体、大小、颜色、粗体、斜体、对齐方式、背景、数字格式(百分比、货币等) |
numbers_set_column_width | 设置列宽 |
numbers_set_row_height | 设置行高 |
numbers_format_range | 在一次调用中将多个格式规则应用于不同的单元格区域 |
numbers_auto_format | 自动检测并应用字符串值的格式(货币、百分比、数字) |
numbers_copy_range | 在打开的文档之间复制值 |
numbers_add_image | 从文件路径向工作表添加图像 |
numbers_list_images | 在一张纸上列出所有图像的位置和大小 |
numbers_add_chart | 根据表格数据创建图表(条形图、折线图、饼图、面积图、散点图) |
numbers_create_sheet_with_table | 在一次快速调用中创建包含表格、数据和格式的完整工作表 |
numbers_magic_fill | AI模式填充——提供示例,自动填充剩余单元格(Creator Studio) |
numbers_super_resolution | AI图像升级——在保持质量的同时提高分辨率(Creator Studio) |
numbers_remove_background | 从图像中移除AI背景(Creator Studio) |
页面(22个工具)
| 工具 | 说明 |
|---|---|
pages_list_documents | 列出所有打开的文档 |
pages_list_templates | 列出可用模板(如简历、报告、信件) |
pages_create_document | 创建新文档 |
pages_open_document | 打开.pages文件 |
pages_save_document | 保存文档 |
pages_export_document | 导出为PDF、Word、EPUB或纯文本 |
pages_close_document | 关闭文档 |
pages_get_body_text | 阅读所有正文 |
pages_get_paragraphs | 将段落作为索引数组获取 |
pages_get_document_info | 获取字数、字符数、页数、修改状态 |
pages_list_images | 列出文档中所有图像的位置和大小 |
pages_add_text | 附加文本(保留格式) |
pages_insert_text_at | 在段落索引处插入文本 |
pages_delete_text | 删除一段 |
pages_replace_text | 查找和替换(保留格式) |
pages_format_text | 在段落上设置字体、大小、颜色、粗体、斜体 |
pages_add_image | 插入图像 |
pages_add_table | 插入表格 |
pages_insert_page_break | 在段落之间插入分页符 |
pages_create_document_with_content | 在一次快速调用中创建包含多个格式化段落的文档 |
pages_super_resolution | AI图像升级——在保持质量的同时提高分辨率(Creator Studio) |
pages_remove_background | 从图像中移除AI背景(Creator Studio) |
主题演讲(41个工具)
| 工具 | 说明 |
|---|---|
keynote_list_presentations | 列出所有打开的演示文稿 |
keynote_list_themes | 列出可用主题(例如白色、黑色、渐变色) |
keynote_get_theme | 获取演示文稿的当前主题 |
keynote_set_theme | 更改现有演示文稿的主题 |
keynote_create_presentation | 创建新演示文稿 |
keynote_open_presentation | 打开.key文件 |
keynote_save_presentation | 保存演示文稿 |
keynote_export_presentation | 导出为PDF、PowerPoint、HTML或图像 |
keynote_close_presentation | 关闭演示文稿 |
keynote_list_slides | 列出带有标题的幻灯片 |
keynote_get_slide_content | 阅读幻灯片中的所有内容 |
keynote_list_slide_items | 在幻灯片上列出所有项目,包括类型、位置和大小 |
keynote_list_master_slides | 列出可用幻灯片布局 |
keynote_add_slide | 添加具有可选布局的幻灯片 |
keynote_delete_slide | 删除幻灯片 |
keynote_duplicate_slide | 复制幻灯片 |
keynote_reorder_slide | 将幻灯片移动到新位置 |
keynote_skip_slide | 隐藏/取消隐藏幻灯片 |
keynote_set_slide_layout | 更改现有幻灯片的主幻灯片布局 |
keynote_set_slide_title | 设置幻灯片标题文本 |
keynote_set_slide_body | 设置滑块体/项目符号点 |
keynote_add_image_to_slide | 将图像添加到幻灯片 |
keynote_add_shape | 添加带文本的形状 |
keynote_add_line | 在幻灯片上的两点之间添加一条线 |
keynote_position_item | 按类型和索引移动/调整形状、图像或文本项的大小 |
keynote_align_items | 沿边缘或中心对齐2+个项目(左、右、上、下、中心、中间) |
keynote_distribute_items | 水平或垂直均匀间隔3+个项目 |
keynote_get_shape_info | 读取形状属性(位置、大小、不透明度、旋转、文本格式) |
keynote_format_shape | 在形状上设置不透明度、旋转和文本字体/大小/颜色/对齐方式 |
keynote_add_table_to_slide | 在幻灯片中添加一个包含可选数据的表格 |
keynote_read_slide_table | 从幻灯片上的表格中读取所有数据 |
keynote_write_slide_table | 将数据写入幻灯片上现有表格的单元格 |
keynote_format_slide_table | 设置幻灯片表格中单元格的格式(文本颜色、数字格式) |
keynote_set_presenter_notes | 设置演示者备注 |
keynote_set_transition | 设置幻灯片过渡效果 |
keynote_start_slideshow | 开始播放演示文稿 |
keynote_stop_slideshow | 停止幻灯片放映 |
keynote_create_presentation_with_slides | 在一次快速通话中使用多个完全配置的幻灯片创建演示文稿 |
keynote_clean_up_slide | AI幻灯片清理——自动调整布局、间距、对齐和排版(Creator Studio) |
keynote_super_resolution | AI图像升级——在保持质量的同时提高分辨率(Creator Studio) |
keynote_remove_background | 从图像中移除AI背景(Creator Studio) |
运作原理
服务器通过以下方式运行JXA(JavaScript for Automation)脚本 osascript 控制iWork应用程序。每个工具调用都是一个 osascript 调用——参数以JSON格式通过 argv[0],结果通过stdout以JSON形式返回。
Claude Desktop / Claude Code / Codex
↓ MCP protocol over stdio
iwork-mcp server (Node.js)
↓ child_process.execFile
/usr/bin/osascript -l JavaScript
↓ JXA scripting bridge
Numbers.app / Pages.app / Keynote.app发展
git clone https://github.com/reichenbach/iwork_mcp.git
cd iwork-mcp
npm install
npm run build测试
npm test # Unit tests — tool registration + error parsing (~300ms, no apps needed)
npm run test:integration # Integration tests — Numbers/Pages/Keynote CRUD (~6s, requires iWork apps)
npm run test:all # Both tiers combined测试使用 node:test 具有内存中的MCP传输(无子进程)。如果未安装相应的应用程序,集成测试会自动跳过。
使用Claude Desktop进行本地开发
要使用Claude Desktop进行本地测试,请指向您的本地版本:
{
"mcpServers": {
"iwork": {
"command": "node",
"args": ["/absolute/path/to/iwork-mcp/dist/index.js"]
}
}
}局限性
iWork的脚本字典定义了什么是可自动化的——一些功能(图表、轨迹变化、评论)根本不被苹果公司公开。iwork-mcp涵盖了API允许的所有内容。我希望随着人工智能工具在整个生态系统中变得更加集成,苹果能够扩展自动化能力。
- 仅限macOS --需要数字、页面和Keynote 14.0+(在14.5和15.1 Creator Studio上测试;从App Store免费)
- 应用程序可见 --iWork应用程序启动并显示窗口;没有无头模式
- 每次通话约430毫秒 --每次工具调用的osascript启动开销(使用复合工具,如
create_sheet_with_table,create_document_with_content,以及create_presentation_with_slides速度) - 图表是基本的 —
numbers_add_chart通过AppleScript桥解决方法创建数据绑定图表(条形图、线条图、饼图、面积图、散点图),但图表自定义(标题、标签、颜色)不由Apple的脚本字典公开 - 公式只能写入 --苹果的脚本字典返回计算值,而不是公式文本
- 无评论或跟踪更改 --未在脚本字典中公开
- 页面格式 --段落格式使用
bodyText.paragraphs支持字体、大小和颜色;粗体/斜体需要PostScript字体名称(例如。HelveticaNeue-Bold);没有直接的粗体/斜体切换 - 首次使用权限提示 --macOS将请求授予自动化访问权限一次
Creator Studio已知问题
iWork 15.1–15.1.1 Creator Studio有脚本错误,iWork-mcp会自动解决:
app.export()失败 对于所有非PDF格式,出现错误(6)——“无法导出文档”。PDF导出通过Quick Look解决方法工作(qlmanage).Creator Studio上的非PDF导出格式(Excel、CSV、Word、EPUB、PowerPoint、HTML、图像)已损坏,没有已知的解决方法。doc.save()悬挂 并显示一个永远不会返回的弹出对话框(有和没有路径参数)。另存为通过文件复制解决方法工作(复制自动保存的iCloud文件,然后关闭并从新路径重新打开)。iCloud自动保存会自动处理纯保存(无路径)。- 自动保存重命名文档 通过附加文件扩展名(例如,“Untitled”变为“Untitled.numbers”),这会中断
documents.byName()查找。iwork mcp注入了名称解析,该解析会尝试原始名称和扩展名称,并在自动保存过程中出现短暂故障时自动重试。
检测到Creator Studio时,所有解决方法都会自动应用。如果您需要非PDF导出,请使用Mac App Store中的经典iWork 14.x版本。
许可证
麻省理工学院
