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
Metadata
Release files for onit-office 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| onit_office-0.1.0.tar.gz | 29.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| onit_office-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.2 kB
Release files / onit_office-0.1.0.tar.gz
| Download URL | onit_office-0.1.0.tar.gz |
|---|---|
| Size | 29.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e9330960188b6950b76b309cdd519ac15cb6201de314f492a76eb40014ab86b
|
|
BLAKE2b-256 checksum How to use checksums |
c346085a2a172ed3d9e4e4ffd0be3a1f4f30bc7e274cd7afc67559531b0da604
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.
Transparency logRelease files / onit_office-0.1.0-py3-none-any.whl
| Download URL | onit_office-0.1.0-py3-none-any.whl |
|---|---|
| Size | 22.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
864bc506c1106ecaa5c9d03d81d75543e17f2ef0bf54e09792d4f527952a0a91
|
|
BLAKE2b-256 checksum How to use checksums |
a74d6db665ade3966d790d31425e3d473c03d439cf9279f2fbf286c3fcea0441
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.
Transparency logSecurity for onit-office 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for onit_office-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.