Standalone MCP server for Microsoft Office document creation (PowerPoint, Excel, Word). Runs as an SSE server that can be used with any MCP client.
Vendored from onit.
pip install onit-officeStart the server (runs in background):
onit-office
# or
onit-office startStart in foreground (for debugging):
onit-office start --foregroundCustom host/port:
onit-office start --host 127.0.0.1 --port 8000Check status:
onit-office statusStop the server:
onit-office stoponit can connect to onit-office as an MCP SSE server. Start onit-office first, then launch onit with the --mcp-sse flag:
onit-office start
onit --mcp-sse http://localhost:18203/sse --webThis gives onit access to all 18 office document tools through its web interface.
Once running, connect any MCP client to the SSE endpoint:
http://localhost:18203/sse
Example MCP client config:
{
"mcpServers": {
"onit-office": {
"url": "http://localhost:18203/sse"
}
}
}18 tools for creating and editing Office documents:
PowerPoint (9 tools):
create_presentation- Create a new 16:9 presentation with title slideadd_slide- Add slides with various layouts (text, bullets, images, two-column)add_table_slide- Add data tables with formatted headersadd_images_slide- Display multiple images in grid layoutsstyle_slide- Apply background colors and stylingget_presentation_info- Inspect presentation structureread_presentation- Read full text content from all slidesmodify_presentation- Edit text in shapes or delete slidesdownload_media- Download media files from URLs
Excel (4 tools):
create_excel- Create Excel files with headers and dataadd_excel_rows- Append rows to existing Excel filesread_excel- Read cell contents from existing Excel filesmodify_excel_cells- Edit specific cells in existing Excel files
Word (4 tools):
create_document- Create Word documents with optional headers/logosadd_document_content- Add headings, paragraphs, bullets, images, tablesread_document- Read full content from existing Word documentsmodify_document- Edit or delete paragraphs in existing Word documents
General (1 tool):
get_file- Retrieve a created file as base64-encoded data for download
By default, created files are stored in a temporary directory unique to each server process (<system temp dir>/onit-office-<pid>, e.g. /tmp/onit-office-12345). This directory is automatically cleaned up when the server exits.
To persist files across restarts, specify a custom data path:
onit-office start --data-path /path/to/my/dataWhen --data-path is provided, auto-cleanup is disabled and files are retained.
See docs/DOCKER.md for Docker build and run instructions.
See docs/TESTING.md for how to run and structure tests.
Apache 2.0