返回市场
macOS办公365-MCP服务器

macOS办公365-MCP服务器

作者:vAirpower9 星标更新:2025-08-01

项目介绍

macOS Office 365 MCP 服务器

这是一个模型上下文协议(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

安装

  1. 克隆仓库

    git clone https://github.com/vAirpower/macos-office365-mcp-server.git
    cd macos-office365-mcp-server
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 设置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助手可以执行:
result = await create_presentation(
    title="Q4 销售报告",
    theme="现代"
)

slide = await add_slide(
    presentation_id=result["presentation_id"],
    layout="标题和内容"
)

await add_text_to_slide(
    slide_id=slide["slide_id"],
    text="收入增长了25%",
    placeholder="内容"
)

await save_presentation(
    presentation_id=result["presentation_id"],
    file_path="~/桌面/Q4_销售.pptx"
)

创建Word文档

# AI助手可以执行:
doc = await create_document(title="项目提案")

await add_heading(
    document_id=doc["document_id"],
    text="执行摘要",
    level=1
)

await add_paragraph(
    document_id=[doc"document_id],
    text="本提案概述了我们的方法论...",
    formatting={"字体大小": 12, "字体名称": "Arial"}
)

await save_document(
    document_id=doc["document_id"],
    file_path="~/桌面/提案.docx"
)

创建Excel工作簿

# AI助手可以执行:
workbook = await create_workbook(title="销售分析")

# 添加数据
data = [
    ["产品", "Q1", "Q2", "Q3", "Q4"],
    ["笔记本电脑", 100, 150, 200, 180],
    ["平板电脑", 80, 90, 110, 120],
    ["手机", 200, 250, 300, 350]
]

await write_range(
    workbook_id=workbook["workbook_id"],
    sheet_name="Sheet1",
    start_cell="A1",
    data=data,
    formatting={"粗体": True}  # 加粗标题
)

# 添加公式
await add_formula(
    workbook_id=workbook["workbook_id"],
    sheet_name="Sheet1",
    cell="F2",
    formula="=SUM(B2:E2)"
)

# 创建图表
await create_chart(
    workbook_id=workbook["workbook_id"],
    sheet_name="Sheet1",
    chart_type="条形图",
    data_range="A1:E4",
    chart_title="季度销售",
    position="G2"
)

await save_workbook(
    workbook_id=workbook["workbook_id"],
    file_path="~/桌面/销售分析.xlsx"
)

故障排除

权限问题

如果您看到“未授权发送Apple事件”,请确保:

  1. 您的终端对Office应用程序有自动化权限
  2. Office应用程序已安装并至少打开过一次
  3. 授予权限后可能需要重启终端

导入错误

如果您看到导入错误:

  1. 确保所有依赖项均已安装:pip install -r requirements.txt
  2. 检查Python版本:python --version(应为3.8及以上)
  3. 验证MCP已安装:pip show mcp

Office未找到

如果Office应用程序未被检测到:

  1. 确保已安装Microsoft Office for Mac
  2. 尝试手动打开PowerPoint/Word/Excel
  3. 检查Office是否安装在标准的应用程序文件夹中

开发

项目结构

macos-office365-mcp-server/
├── src/
│   ├── office365_mcp_server.py    # 主MCP服务器
│   ├── controllers/
│   │   ├── powerpoint_controller.py
│   │   ├── word_controller.py
│   │   └── excel_controller.py
│   ├── integrations/
│   │   └── applescript_bridge.py  # AppleScript自动化
│   └── utils/
│       ├── config.py
│       ├── logger.py
│       └── validators.py
├── requirements.txt
└── README.md

添加新功能

  1. 向适当的控制器添加新方法
  2. office365_mcp_server.py中注册新工具
  3. 更新此README以包含使用示例

许可证

MIT许可证 - 详情见LICENSE文件

贡献

欢迎贡献!请:

  1. 分叉仓库
  2. 创建功能分支
  3. 为新功能添加测试
  4. 提交拉取请求

支持

对于问题和疑问:

  • 在GitHub上打开一个issue
  • 查看现有issue寻找解决方案
  • 确保您已经遵循了所有设置步骤

致谢

  • 使用模型上下文协议(MCP)构建
  • 使用python-pptx、python-docx和openpyxl进行文档操作
  • 使用AppleScript集成实现对原生Office的控制