关于 macOS Office 365 MCP Server
macOS Office 365 MCP Server 是一款概念验证服务,供 AI 助手在 macOS 上创建和编辑 PowerPoint、Word 与 Excel 文件。它通过 AppleScript 控制已安装的 Office 应用。
主要功能
- 01创建和编辑 PowerPoint 演示文稿
- 02构建并设置 Word 文档格式
- 03写入 Excel 数据并创建图表
- 04以多种格式保存文件
- 05检查已打开的 Office 应用
适用场景
- 01制作带演讲者备注的幻灯片
- 02根据模板排版文档
- 03写入电子表格数据和公式
- 04根据工作簿数据创建图表
MCP 相关
该 MCP 服务提供创建和编辑 PowerPoint、Word 与 Excel 文件的工具,也可检查活动文档和 Office 应用状态。Claude Desktop 和 Cline 等 MCP 客户端可以调用这些工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
macOS Office 365 MCP 服务
一个 Model Context Protocol(MCP)服务,可让 AI 助手在 macOS 上创建和操作 Microsoft Office 文档(PowerPoint、Word 和 Excel)。这是一个概念验证项目,也是个人项目,并非官方 MCP 服务。如果遇到任何问题,请告诉我。
LinkedIn:https://www.linkedin.com/in/bluhmadam/
功能
PowerPoint
- 使用自定义标题和主题创建演示文稿
- 使用各种版式添加幻灯片
- 插入文本、图像和演讲者备注
- 以多种格式保存演示文稿
Word
- 从头开始或使用模板创建文档
- 添加标题、段落、列表和表格
- 应用文本格式和样式
- 以多种格式保存文档
Excel
- 创建包含多个工作表的工作簿
- 向单元格和区域写入数据
- 添加公式和计算
- 创建图表(柱形图、折线图、饼图)
- 应用单元格格式和样式
- 以多种格式保存工作簿
前置条件
系统要求
- macOS 10.15 或更高版本
- Python 3.8 或更高版本
- Microsoft Office for Mac(PowerPoint、Word 和/或 Excel)
Python 依赖项
pip install mcp
pip install python-pptx
pip install python-docx
pip install openpyxl
pip install aiofiles
安装
-
克隆仓库
git clone https://github.com/vAirpower/macos-office365-mcp-server.git cd macos-office365-mcp-server -
安装依赖项
pip install -r requirements.txt -
设置 macOS 权限
此服务使用 AppleScript 控制 Office 应用。你需要授予相应权限:
a. 打开 系统偏好设置 → 安全性与隐私 → 隐私 b. 在左侧边栏中选择 自动化 c. 找到你的终端应用(Terminal、iTerm2、VS Code 等) d. 勾选以下选项:
- Microsoft PowerPoint
- Microsoft Word
- Microsoft Excel
首次运行服务时,如果系统提示,请点击“好”以允许自动化。
配置
MCP 客户端配置
将此服务添加到 MCP 客户端配置中:
用于 Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"office365": {
"command": "python",
"args": ["/path/to/macos-office365-mcp-server/src/office365_mcp_server.py"]
}
}
}
用于 Cline(VS Code)
编辑 Cline 的 MCP 设置:
{
"mcpServers": {
"office365": {
"command": "python",
"args": ["/path/to/macos-office365-mcp-server/src/office365_mcp_server.py"]
}
}
}
使用方法
配置完成后,AI 助手可以使用以下工具:
PowerPoint 工具
create_presentation- 创建新的演示文稿add_slide- 向演示文稿添加幻灯片add_text_to_slide- 向幻灯片添加文本内容add_image_to_slide- 向幻灯片添加图像add_speaker_notes- 向幻灯片添加演讲者备注save_presentation- 将演示文稿保存到文件
Word 工具
create_document- 创建新文档add_heading- 向文档添加标题add_paragraph- 添加段落,可选设置格式add_list- 添加项目符号列表或编号列表add_table- 添加包含数据的表格save_document- 将文档保存到文件
Excel 工具
create_workbook- 创建新工作簿add_worksheet- 向工作簿添加工作表write_cell- 向指定单元格写入数据write_range- 向单元格区域写入数据add_formula- 向单元格添加公式create_chart- 根据数据创建图表save_workbook- 将工作簿保存到文件list_worksheets- 列出工作簿中的所有工作表
实用工具
list_active_presentations- 列出所有已打开的演示文稿list_active_documents- 列出所有已打开的文档list_active_workbooks- 列出所有已打开的工作簿check_office_status- 检查 Office 应用是否可用
使用示例
创建 PowerPoint 演示文稿
# AI Assistant can execute:
result = await create_presentation(
title="Q4 Sales Report",
theme="modern"
)
slide = await add_slide(
presentation_id=result["presentation_id"],
layout="Title and Content"
)
await add_text_to_slide(
slide_id=slide["slide_id"],
text="Revenue increased by 25%",
placeholder="content"
)
await save_presentation(
presentation_id=result["presentation_id"],
file_path="~/Desktop/Q4_Sales.pptx"
)
创建 Word 文档
# AI Assistant can execute:
doc = await create_document(title="Project Proposal")
await add_heading(
document_id=doc["document_id"],
text="Executive Summary",
level=1
)
await add_paragraph(
document_id=doc["document_id"],
text="This proposal outlines our approach...",
formatting={"font_size": 12, "font_name": "Arial"}
)
await save_document(
document_id=doc["document_id"],
file_path="~/Desktop/proposal.docx"
)
创建 Excel 工作簿
# AI Assistant can execute:
workbook = await create_workbook(title="Sales Analysis")
# Add data
data = [
["Product", "Q1", "Q2", "Q3", "Q4"],
["Laptops", 100, 150, 200, 180],
["Tablets", 80, 90, 110, 120],
["Phones", 200, 250, 300, 350]
]
await write_range(
workbook_id=workbook["workbook_id"],
sheet_name="Sheet1",
start_cell="A1",
data=data,
formatting={"bold": True} # Bold headers
)
# Add a formula
await add_formula(
workbook_id=workbook["workbook_id"],
sheet_name="Sheet1",
cell="F2",
formula="=SUM(B2:E2)"
)
# Create a chart
await create_chart(
workbook_id=workbook["workbook_id"],
sheet_name="Sheet1",
chart_type="bar",
data_range="A1:E4",
chart_title="Quarterly Sales",
position="G2"
)
await save_workbook(
workbook_id=workbook["workbook_id"],
file_path="~/Desktop/sales_analysis.xlsx"
)
故障排除
权限问题
如果看到“未获授权发送 Apple 事件”,请确保:
- 你的终端拥有 Office 应用的自动化权限
- 已安装 Office 应用,并且至少打开过一次
- 授予权限后,可能需要重启终端
导入错误
如果遇到导入错误:
- 确保已安装所有依赖项:
pip install -r requirements.txt - 检查 Python 版本:
python --version(应为 3.8+) - 确认已安装 MCP:
pip show mcp
未找到 Office
如果未检测到 Office 应用程序:
- 确保已安装适用于 Mac 的 Microsoft Office
- 先尝试手动打开 PowerPoint/Word/Excel
- 检查 Office 是否安装在标准 Applications 文件夹中
开发
项目结构
macos-office365-mcp-server/
├── src/
│ ├── office365_mcp_server.py # Main MCP server
│ ├── controllers/
│ │ ├── powerpoint_controller.py
│ │ ├── word_controller.py
│ │ └── excel_controller.py
│ ├── integrations/
│ │ └── applescript_bridge.py # AppleScript automation
│ └── utils/
│ ├── config.py
│ ├── logger.py
│ └── validators.py
├── requirements.txt
└── README.md
添加新功能
- 在相应的控制器中添加新方法
- 在
office365_mcp_server.py中注册新工具 - 在此 README 中更新用法示例
许可证
MIT 许可证——详情请参阅 LICENSE 文件
贡献
欢迎贡献!请:
- Fork 此仓库
- 创建功能分支
- 为新功能添加测试
- 提交拉取请求
支持
如有问题或疑问:
- 在 GitHub 上提交问题
- 查看现有问题以寻找解决方案
- 确保已完成所有设置步骤
致谢
- 使用 Model Context Protocol(MCP)构建
- 使用 python-pptx、python-docx 和 openpyxl 操作文档
- 通过 AppleScript 集成实现原生 Office 控制
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。