Awesome-omni-skill office-mcp

MCP server for Word, Excel, PowerPoint operations via AI

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/backend/office-mcp" ~/.claude/skills/diegosouzapw-awesome-omni-skill-office-mcp && rm -rf "$T"
manifest: skills/backend/office-mcp/SKILL.md
safety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • pip install
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

Office Mcp Skill

Overview

This skill wraps Office document operations as MCP tools, allowing Claude to create, edit, and manipulate Word, Excel, and PowerPoint files with standardized interfaces.

How to Use

  1. Describe what you want to accomplish
  2. Provide any required input data or files
  3. I'll execute the appropriate operations

Example prompts:

  • "Create Word documents with AI-generated content"
  • "Build Excel spreadsheets with formulas"
  • "Generate PowerPoint presentations"
  • "Batch edit Office documents"

Domain Knowledge

Office MCP Tools

ToolInputOutput
create_docx
Title, sections, styles.docx file
edit_docx
Path, changesUpdated .docx
create_xlsx
Data, formulas.xlsx file
create_pptx
Slides, layout.pptx file

Integration with Claude Skills

# Example: Combining Skills + MCP

User: "Create a sales report from this data"

1. Data Analysis Skill → Analyze data
2. office-mcp/create_docx → Generate Word report
3. office-mcp/create_xlsx → Generate Excel summary
4. office-mcp/create_pptx → Generate PowerPoint deck

MCP Server Implementation

from mcp import Server
from docx import Document
from openpyxl import Workbook

server = Server("office-mcp")

@server.tool("create_docx")
async def create_docx(title: str, content: str, output_path: str):
    doc = Document()
    doc.add_heading(title, 0)
    doc.add_paragraph(content)
    doc.save(output_path)
    return {"status": "success", "path": output_path}

@server.tool("create_xlsx")
async def create_xlsx(data: list, output_path: str):
    wb = Workbook()
    ws = wb.active
    for row in data:
        ws.append(row)
    wb.save(output_path)
    return {"status": "success", "path": output_path}

Best Practices

  1. Validate inputs before document operations
  2. Use temp files for large documents
  3. Return structured responses with file paths
  4. Handle errors gracefully with meaningful messages

Installation

# Install required dependencies
pip install python-docx openpyxl python-pptx reportlab jinja2

Resources