Aspose.Words MCP Server is a FastMCP-based MCP server built on top of Aspose.Words for Python via .NET. It automates Microsoft Word document creation and editing and exposes operations as MCP tools that any MCP-compatible client can call. Supported transports: stdio, streamable-http, sse.
- Create documents; read/write text, headings, and paragraphs
- Text formatting (font, size, style, color, underline)
- Page and section breaks; page setup (margins, orientation, paper size, columns)
- Lists (bulleted/numbered)
- Tables: create, auto-fit, merge cells, alignment, shading, paddings, column widths, header styling
- Footnotes and endnotes: add, convert, anchor-based operations, validation
- Comments: get by author, by paragraph, all comments
- Document properties: read/write (title, author, subject, keywords)
- Protection: protect/unprotect, partial editing restrictions
- Bookmarks, hyperlinks
- Watermarks (text/image)
- Export as Base64 (DOCX, PDF, etc.), advanced export options
- Render page to image (PNG, etc.)
- In-memory document management: copy, save as, list, delete, merge
- Python 3.11+
- Aspose.Words for Python via .Net. This library is a commercial product.
You'll need to obtain a valid license for Aspose.Words. The package will install this dependency, but you're responsible for complying with Aspose's licensing terms.
pip install aspose-words-mcpFrom source (download repo and install requirements):
git clone https://github.com/aspose-words/Aspose.Words-MCP-Server
cd Aspose.Words-MCP-Server
pip install -r requirements.txtAfter installation, the CLI command is available:
aspose-words-mcpBy default, the server runs with the stdio transport.
Run without installation:
python mcp_server.pySupported MCP transports: stdio, streamable-http, sse.
MCP_TRANSPORT—stdio|streamable-http|sse(defaultstdio)MCP_HOST— host address (default0.0.0.0)MCP_PORT— port (default8080)MCP_PATH— HTTP path forstreamable-http(default/mcp)MCP_SSE_PATH— events path forsse(default/sse)LOG_LEVEL— logging level (INFO,DEBUG, ...)
The Aspose.Words license is applied when the server starts. The effective path to the license file is resolved with the following precedence:
- The
license_pathargument ofrun_server(..., license_path=None) - The
ASPOSE_WORDS_LICENSE_PATHenvironment variable
If no license is provided or the file is not accessible, the server runs in Evaluation mode.
Example of setting the environment variable:
export ASPOSE_WORDS_LICENSE_PATH='/path/to/aspose.words.lic'export MCP_TRANSPORT=streamable-http # or sse
export MCP_HOST=0.0.0.0
export MCP_PORT=8080
export MCP_PATH=/mcp # for streamable-http
export MCP_SSE_PATH=/sse # for sse
aspose-words-mcpOn start, the server prints the listening address.
See full list and signatures in mcp_server.py (function register_tools) and tests in tests/features/*.
Main tool categories:
- content/reading: create document, insert/delete/read text, headings, lists, HTML/Markdown
- layout: pages, breaks, columns, headers/footers, page numbering
- tables: create and format tables
- watermarks: watermarks
- links/bookmarks: hyperlinks and bookmarks
- properties: document properties
- protection: protection and restrictions
- comments/notes: comments, footnotes/endnotes
- export/render: export, page rendering
Sequence of tool calls (names match the server):
create_document→ getdoc_idadd_heading(e.g., levels 1–3)add_paragraph/insert_text_endadd_table_endoradd_table_at_paragraphadd_watermark_textoradd_watermark_image_base64export_base64(e.g.,fmt="pdf") — get file as Base64
- Claude Desktop MCP: add this server with
streamable-httporssetransport and the URL printed by the server at startup. - Any MCP (JSON) clients — configure the matching transport and path.
This package is licensed under the MIT License. However, it depends on Aspose.Words for Python via .Net library, which is proprietary, closed-source library.
This project may contain trademarks or logos for projects, products, or services. Use of third-party trademarks or logos is subject to those third-party policies.