macOS Office 365 MCP服务器
一种模型上下文协议(MCP)服务器,使AI助手能够在macOS上创建和操作Microsoft Office文档(PowerPoint、Word和Excel)。这是一个概念验证和个人项目,不是官方的MCP服务器。如果你有任何问题,请告诉我。
领英:https://www.linkedin.com/in/bluhmadam/
特性
幻灯片
- 使用自定义标题和主题创建演示文稿
- 添加各种布局的幻灯片
- 插入文字、图像和演讲者备注
- 以多种格式保存演示文稿
字
- 从头开始创建文档或模板
- 添加标题、段落、列表和表格
- 应用文本格式和样式
- 以多种格式保存文档
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.查找您的终端应用程序(终端、iTerm2、VS代码等) d.勾选以下方框:
- 微软PowerPoint - 微软Word - 微软Excel
如果首次运行服务器时出现提示,请单击“确定”以允许自动化。
配置
MCP客户端配置
将服务器添加到MCP客户端配置中:
适用于克劳德桌面
编辑 ~/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代码)
编辑您的临床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应用程序:
- 确保已安装Microsoft Office for Mac
- 请先尝试手动打开PowerPoint/Word/Excel
- 检查标准应用程序文件夹中是否安装了Office
发展
项目结构
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许可证-有关详细信息,请参阅许可证文件
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 提交拉取请求
支持
对于问题和疑问:
- 在GitHub上打开一个问题
- 检查现有问题的解决方案
- 确保您已完成所有设置步骤
致谢
- 使用模型上下文协议(MCP)构建
- 使用python-pptx、python-docx和openpyxl进行文档操作
- 用于本机Office控件的AppleScript集成

