Skip to content

Office Oxide MCP Server — Quick Start

office-oxide-mcp is a Model Context Protocol server that lets AI assistants extract content from Office documents. It runs locally — no files leave your machine.

Install crgx (one-time)

crgx is an npx-like runner for Rust binaries — it auto-downloads office_oxide_mcp on first run, so there’s no manual MCP install.

Linux / macOS

curl -fsSL crgx.dev/install.sh | sh

Windows (PowerShell)

irm crgx.dev/install.ps1 | iex

Configuration

Once crgx is installed, paste the config below into your AI tool. crgx handles downloading and updating office_oxide_mcp automatically.

Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json (Linux) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "office-oxide": {
      "command": "crgx",
      "args": ["office_oxide_mcp@latest"]
    }
  }
}

Claude Code

Add to your project’s .claude/settings.json:

{
  "mcpServers": {
    "office-oxide": {
      "command": "crgx",
      "args": ["office_oxide_mcp@latest"]
    }
  }
}

Cursor

Add to Cursor MCP settings:

{
  "mcpServers": {
    "office-oxide": {
      "command": "crgx",
      "args": ["office_oxide_mcp@latest"]
    }
  }
}

Alternative install

If you’d rather not use crgx, install office_oxide_mcp directly:

cargo install office_oxide_mcp

Then point your AI tool at the binary:

{
  "mcpServers": {
    "office-oxide": {
      "command": "office-oxide-mcp"
    }
  }
}

Available tools

extract

Extract text, Markdown, HTML, or structured IR from any of the six supported Office formats.

Parameter Type Required Description
file_path string Yes Path to a .docx, .xlsx, .pptx, .doc, .xls, or .ppt
output_path string Yes Path to write the extracted content
format string No "text" (default), "markdown", "html", or "ir"
from_format string No Override extension-based format detection

convert

Convert between formats — primarily legacy → OOXML.

Parameter Type Required Description
input_path string Yes Source file
output_path string Yes Target file (target format inferred from extension)

How it works

The MCP server speaks stdio JSON-RPC 2.0. When an AI assistant needs to read an Office document, it sends a tools/call request and receives a confirmation pointing at the output file.

All processing happens locally using the same Rust extraction engine as the library and CLI — no data is sent to external services.

Prompts that work well

  • “Pull the Markdown of quarterly.docx into quarterly.md.”
  • “Convert legacy/old_report.doc to modern/old_report.docx.”
  • “Extract slides.pptx as HTML to slides.html so I can preview it in the browser.”
  • “Dump the IR JSON of pricing.xlsx to pricing.ir.json so I can see the table structure.”

Under the hood the assistant issues a JSON-RPC call like:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "extract",
    "arguments": {
      "file_path": "/path/quarterly.docx",
      "output_path": "/path/quarterly.md",
      "format": "markdown"
    }
  }
}

The server writes the result to output_path and returns a short confirmation; the assistant then reads that file back into its context.

See also