macOS Office 365 MCP Server について
macOS Office 365 MCP Serverは、macOS上でPowerPoint、Word、Excelファイルを作成・編集するAIアシスタント向けの概念実証サーバーです。AppleScriptでインストール済みのOfficeアプリを操作します。
主な機能
- 01PowerPointプレゼンテーションの作成・編集
- 02Word文書の作成と書式設定
- 03Excelデータの入力とグラフ作成
- 04複数形式でのファイル保存
- 05起動中のOfficeアプリの確認
活用シーン
- 01発表者ノート付きスライドの作成
- 02テンプレートを使った文書の書式設定
- 03表計算データと数式の入力
- 04ブックのデータからグラフを作成
MCP 対応
PowerPoint、Word、Excelファイルを作成・編集するツールに加え、開いている文書やOfficeアプリの状態を確認するツールを提供します。Claude DesktopやClineなどのMCPクライアントから呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
macOS Office 365 MCP サーバー
AI アシスタントが macOS 上で Microsoft Office のドキュメント(PowerPoint、Word、Excel)を作成、操作できるようにする Model Context Protocol(MCP)サーバーです。これは概念実証を目的とした個人プロジェクトであり、公式の 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
サーバーの初回実行時に確認を求められた場合は、「OK」をクリックしてオートメーションを許可します。
設定
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"
)
トラブルシューティング
アクセス許可の問題
「Not authorized to send Apple events」と表示される場合は、次の点を確認してください。
- ターミナルに Office アプリのオートメーションを許可するアクセス権がある
- Office アプリケーションがインストールされており、少なくとも一度は起動されている
- アクセス許可を付与した後、ターミナルの再起動が必要な場合がある
インポートエラー
インポートエラーが表示される場合は、次の手順を確認してください。
- すべての依存関係がインストールされていることを確認します:
pip install -r requirements.txt - Python のバージョンを確認します:
python --version(3.8 以降である必要があります) - MCP がインストールされていることを確認します:
pip show mcp
Office が見つからない
Office アプリケーションが検出されない場合は、次の手順を確認してください。
- Microsoft Office for Mac がインストールされていることを確認します
- まず 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 - 詳細については LICENSE ファイルを参照してください
コントリビューション
コントリビューションを歓迎します!次の手順に従ってください。
- リポジトリをフォークします
- フィーチャーブランチを作成します
- 新しい機能のテストを追加します
- プルリクエストを送信します
サポート
問題や質問がある場合:
- GitHub で issue を作成します
- 解決策について既存の issue を確認します
- すべてのセットアップ手順に従ったことを確認します
謝辞
- Model Context Protocol(MCP)を使用して構築されています
- ドキュメントの操作に python-pptx、python-docx、openpyxl を使用しています
- ネイティブの Office 制御に AppleScript を統合しています
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。