Standalone MCP server for Microsoft Office document creation (PowerPoint, Excel, Word)
Project description
onit-office
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.
Installation
pip install onit-office
Usage
Start the server (runs in background):
onit-office
# or
onit-office start
Start in foreground (for debugging):
onit-office start --foreground
Custom host/port:
onit-office start --host 127.0.0.1 --port 8000
Check status:
onit-office status
Stop the server:
onit-office stop
Using with onit
onit 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 --web
This gives onit access to all 18 office document tools through its web interface.
MCP Client Configuration
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"
}
}
}
Tools
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
Data Directory
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/data
When --data-path is provided, auto-cleanup is disabled and files are retained.
Docker
See docs/DOCKER.md for Docker build and run instructions.
Testing
See docs/TESTING.md for how to run and structure tests.
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file onit_office-0.1.0.tar.gz.
File metadata
- Download URL: onit_office-0.1.0.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e9330960188b6950b76b309cdd519ac15cb6201de314f492a76eb40014ab86b
|
|
| MD5 |
13b82b2981b9aa1bab092c64c246b7fb
|
|
| BLAKE2b-256 |
c346085a2a172ed3d9e4e4ffd0be3a1f4f30bc7e274cd7afc67559531b0da604
|
Provenance
The following attestation bundles were made for onit_office-0.1.0.tar.gz:
Publisher:
publish.yml on sibyl-oracles/onit-office
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
onit_office-0.1.0.tar.gz -
Subject digest:
3e9330960188b6950b76b309cdd519ac15cb6201de314f492a76eb40014ab86b - Sigstore transparency entry: 1006319408
- Sigstore integration time:
-
Permalink:
sibyl-oracles/onit-office@0ca95431468e85d26692c6a33fa265fef3230004 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/sibyl-oracles
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0ca95431468e85d26692c6a33fa265fef3230004 -
Trigger Event:
release
-
Statement type:
File details
Details for the file onit_office-0.1.0-py3-none-any.whl.
File metadata
- Download URL: onit_office-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
864bc506c1106ecaa5c9d03d81d75543e17f2ef0bf54e09792d4f527952a0a91
|
|
| MD5 |
fdefd482825007eb530cfee416db0e4e
|
|
| BLAKE2b-256 |
a74d6db665ade3966d790d31425e3d473c03d439cf9279f2fbf286c3fcea0441
|
Provenance
The following attestation bundles were made for onit_office-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on sibyl-oracles/onit-office
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
onit_office-0.1.0-py3-none-any.whl -
Subject digest:
864bc506c1106ecaa5c9d03d81d75543e17f2ef0bf54e09792d4f527952a0a91 - Sigstore transparency entry: 1006319412
- Sigstore integration time:
-
Permalink:
sibyl-oracles/onit-office@0ca95431468e85d26692c6a33fa265fef3230004 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/sibyl-oracles
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0ca95431468e85d26692c6a33fa265fef3230004 -
Trigger Event:
release
-
Statement type: