- name
- opendocswork-mcp-office-processing
- description
- Rust-native MCP server for Office document processing (Excel, Word, PowerPoint, PDF) with sub-millisecond performance
- triggers
- ["process office documents with MCP","read excel files with rust","fill PDF forms programmatically","create word documents from markdown","generate powerpoint presentations","extract data from office files","automate office document workflows","manipulate xlsx docx pptx files"]
# opendocswork-mcp-office-processing
> Skill by [ara.so](https://ara.so) — MCP Skills collection.
## Overview
`office-oxide-mcp` is a Rust-native MCP (Model Context Protocol) server that enables AI assistants to read, write, and manipulate Office documents (Excel, Word, PowerPoint, PDF) with sub-millisecond performance. It's designed as an open-source alternative to commercial document processing libraries, offering local-first, fast document operations.
**Key capabilities:**
- **Read** Excel, Word, PowerPoint, PDF → JSON/Markdown/Text
- **Write** Excel spreadsheets with formulas, charts, formatting
- **Create** Word documents from Markdown, manipulate styles, tables
- **Generate** PowerPoint presentations with slides, charts, images
- **Fill** PDF forms (AcroForm/XFA) and overlay text on flat PDFs
- **Extract** structured data and metadata from all formats
- **Skills system** for reusable document workflows
## Installation
### Cargo Install
```bash
cargo install office-oxide-mcp
```
### From Source
```bash
git clone https://github.com/Aimino-Tech/office-oxide-mcp.git
cd office-oxide-mcp
cargo build --release
# Binary at target/release/office-oxide-mcp
```
### Binary Download
Download pre-built binaries from [GitHub Releases](https://github.com/Aimino-Tech/office-oxide-mcp/releases).
## Configuration
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"office": {
"command": "office-oxide-mcp",
"args": ["--transport", "stdio"]
}
}
}
```
### Cursor
Add to Cursor MCP settings:
```json
{
"mcpServers": {
"office-oxide-mcp": {
"command": "office-oxide-mcp",
"args": ["--transport", "stdio"]
}
}
}
```
### VS Code (Copilot)
Add to `.vscode/mcp.json`:
```json
{
"servers": {
"office-oxide-mcp": {
"command": "office-oxide-mcp",
"args": ["--transport", "stdio"]
}
}
}
```
### Environment Variables
```bash
# Optional: Set custom temp directory
export OFFICE_OXIDE_TEMP_DIR=/path/to/temp
# Optional: Enable debug logging
export RUST_LOG=office_oxide_mcp=debug
```
## Core MCP Tools
### Discovery & Metadata
#### `list_formats`
List all supported document formats and capabilities.
```json
{
"method": "tools/call",
"params": {
"name": "list_formats"
}
}
```
#### `get_document_info`
Get metadata about a document file.
```json
{
"method": "tools/call",
"params": {
"name": "get_document_info",
"arguments": {
"file_path": "/path/to/document.xlsx"
}
}
}
```
**Response includes:** format, file size, modification time, read/write capabilities.
### Reading Documents
#### `office_read`
Universal document reader supporting multiple output formats.
**Read Excel to JSON:**
```json
{
"method": "tools/call",
"params": {
"name": "office_read",
"arguments": {
"file_path": "/path/to/data.xlsx",
"output_format": "json"
}
}
}
```
**Read Word to Markdown:**
```json
{
"method": "tools/call",
"params": {
"name": "office_read",
"arguments": {
"file_path": "/path/to/report.docx",
"output_format": "markdown"
}
}
}
```
**Read PDF to Text:**
```json
{
"method": "tools/call",
"params": {
"name": "office_read",
"arguments": {
"file_path": "/path/to/document.pdf",
"output_format": "text"
}
}
}
```
**Output format options:** `json`, `markdown`, `text`, `chunks`
## Excel Operations
### Creating Spreadsheets
#### `office_create_xlsx`
Create a new Excel workbook.
```json
{
"method": "tools/call",
"params": {
"name": "office_create_xlsx",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Summary"
}
}
}
```
#### `office_write_cell`
Write a single cell value.
```json
{
"method": "tools/call",
"params": {
"name": "office_write_cell",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Summary",
"cell": "A1",
"value": "Revenue",
"value_type": "text"
}
}
}
```
**Value types:** `text`, `number`, `formula`, `date`, `boolean`
#### `office_write_range`
Write multiple cells at once.
```json
{
"method": "tools/call",
"params": {
"name": "office_write_range",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Data",
"start_cell": "A1",
"data": [
["Name", "Age", "Salary"],
["Alice", 30, 75000],
["Bob", 25, 65000]
]
}
}
}
```
### Formatting
#### `office_format_range`
Apply formatting to cell ranges.
```json
{
"method": "tools/call",
"params": {
"name": "office_format_range",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Summary",
"range": "A1:C1",
"format": {
"bold": true,
"font_size": 14,
"bg_color": "#4472C4",
"font_color": "#FFFFFF"
}
}
}
}
```
**Format options:** `bold`, `italic`, `underline`, `font_size`, `font_name`, `bg_color`, `font_color`, `border`, `number_format`
#### `office_merge_cells`
Merge cell ranges.
```json
{
"method": "tools/call",
"params": {
"name": "office_merge_cells",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Report",
"range": "A1:D1"
}
}
}
```
#### `office_set_column_width`
Set column width.
```json
{
"method": "tools/call",
"params": {
"name": "office_set_column_width",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Data",
"column": "A",
"width": 25.0
}
}
}
```
### Charts & Visualizations
#### `office_create_chart`
Create charts in Excel.
```json
{
"method": "tools/call",
"params": {
"name": "office_create_chart",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "Dashboard",
"chart_type": "column",
"data_range": "A1:B5",
"title": "Monthly Sales",
"position": "D2"
}
}
}
```
**Chart types:** `column`, `bar`, `line`, `pie`, `scatter`, `area`
### Sheet Management
#### `office_add_sheet`
Add a new worksheet.
```json
{
"method": "tools/call",
"params": {
"name": "office_add_sheet",
"arguments": {
"file_path": "/path/to/output.xlsx",
"sheet_name": "NewSheet"
}
}
}
```
#### `office_rename_sheet`
Rename existing worksheet.
```json
{
"method": "tools/call",
"params": {
"name": "office_rename_sheet",
"arguments": {
"file_path": "/path/to/output.xlsx",
"old_name": "Sheet1",
"new_name": "Q4Results"
}
}
}
```
## Word Document Operations
### Creating Documents
#### `office_create_docx`
Create a new Word document.
```json
{
"method": "tools/call",
"params": {
"name": "office_create_docx",
"arguments": {
"file_path": "/path/to/output.docx"
}
}
}
```
#### `office_write_docx_from_md`
Create Word document from Markdown.
```json
{
"method": "tools/call",
"params": {
"name": "office_write_docx_from_md",
"arguments": {
"file_path": "/path/to/output.docx",
"markdown": "# Annual Report\n\n## Executive Summary\n\nRevenue increased by **25%** this year.\n\n- Q1: $1.2M\n- Q2: $1.5M\n- Q3: $1.8M\n- Q4: $2.1M"
}
}
}
```
### Text Manipulation
#### `office_replace_text`
Replace text in document.
```json
{
"method": "tools/call",
"params": {
"name": "office_replace_text",
"arguments": {
在 GitHub 查看