Skip to content

Releases: ForLegalAI/mcp-ms-office-documents

v3.5 — Custom Filenames & Flexible S3 Auth

11 Apr 07:53

Choose a tag to compare

✨ New Features

Custom Output Filenames

All document tools (create_word_from_markdown, create_excel_from_markdown, create_powerpoint_presentation, create_email_draft, create_xml_file) now accept an optional file_name parameter. When provided, the generated file will use that name (without extension) instead of a randomly generated UUID.

AWS S3 — Default Credential Chain Support

The S3 backend no longer requires explicit credentials to be set. In addition to the existing explicit-credentials mode, you can now leave AWS_ACCESS_KEY and AWS_SECRET_ACCESS_KEY unset and boto3 will automatically discover credentials via the AWS default chain:

  • IRSA (IAM Roles for Service Accounts) on EKS
  • EC2 instance profiles / ECS task roles
  • AWS SSO sessions (aws sso login)
  • Environment variables / ~/.aws/credentials

Only S3_BUCKET is required in this mode. AWS_REGION is also optional — resolved automatically from environment or instance metadata.


🐛 Bug Fixes

DOCX Template Placeholder — Spurious Empty Paragraph Removed

Fixed a bug where replacing a standalone block-content placeholder in a .docx template would leave a spurious empty paragraph before the inserted content.

Config Normalization

_validate() in config.py now also normalizes and strips non-empty values, preventing issues caused by accidental surrounding whitespace in environment variables.


🔧 Maintenance

  • fastmcp updated to 3.2.0
  • Added Ruff linter configuration (ruff.toml); all existing code passes linting
  • Improved module exports and type hints across tool packages

v3.4 - Bug fixes and small improvements

18 Mar 21:35
7453791

Choose a tag to compare

What's Changed

☁️ GCS Signed URL — Workload Identity Federation Support

Signed URL generation for Google Cloud Storage now supports Workload Identity Federation (WIF) and federated credentials. When no local service account key file is available, signing is automatically delegated to the IAM signBlob API, ensuring compatibility with ADC and federated auth flows.

📊 XLSX Table Rendering — Percent Auto-Formatting Removed

The heuristic that automatically formatted floats in the (0, 1] range as percentages in add_table_to_sheet has been removed. Header styling and large-number formatting (#,##0 for values ≥ 1000) remain intact.

✨ Office Document Generation — Quality-of-Life Improvements

Several improvements to XLSX and DOCX generation helpers:

  • XLSX: Percentage number formats are now applied when a Markdown cell value ends with %, with thousands separator support.
  • DOCX: Markdown tables are now supported in template placeholders, header/footer handling is improved across sections, and placeholder font color is correctly preserved.

  • feat(gcs): enhance signed URL generation for WIF support by @pedrojreis in #40
  • fix(helpers): remove automatic percentage formatting for <1 by @pedrojreis in #41
  • various-improvements by @dvejsada in #44

Full Changelog: v3.3...v3.4

v3.3 New docx and excel features, simple auth

20 Feb 20:42
d6f8063

Choose a tag to compare

😎 New Features

📑 New features for docx generation:

  • underlined and strikethrough text
  • text alignment (right, center, left, justified)
  • add picture from URL
  • add automatic table of contents
  • add text to header and footer
  • add page break

🧮 New features for excel sheet:

  • excel sheet generation now allows for creating multiple sheets in 1 workbook with possible references across sheets.

⚠️ New security features

  • set API key verification for MCP server (very simple basic auth)

Full changgelog

  • Update package versions in requirements.txt for stability and compatibility, bump fasthtml to version 3 by @dvejsada in #35
  • Implement API key authentication middleware and update configuration for optional API key support by @dvejsada in #36
  • feat(gcs): enhance GCS configuration handling by @pedrojreis in #34
  • feat(logging): enhance error handling and logging across document and email tools by @dvejsada in #37
  • feat-docs-improvements by @dvejsada in #38

New Contributors

Full Changelog: v3.2...v3.3

XML bug fix

15 Feb 18:33

Choose a tag to compare

Fixed a bug with missing file type for XML upload.

🧮 XML file creation

08 Feb 17:35
5129f99

Choose a tag to compare

New tool - XML file creation

Although not an MS office file, based our internal need for LLM to create XMLs, I have added the tool to this MCP server. Maybe somebody else will also have some use for it.

What's Changed

  • Add XML file creation tool with validation by @dvejsada in #33

Full Changelog: v3.0...v3.1

v3.0 - Dynamic Word template tools

08 Jan 15:03
329f8a2

Choose a tag to compare

🎉 New Feature: Dynamic Word Template tools

Create professional Word documents from reusable templates with full markdown support!

✨ Highlights

  • Template-based generation - Define DOCX templates with {{placeholder}} syntax and register them as separate tools via YAML configuration
  • Full markdown support - All placeholder values support rich formatting including bold, italic, code, links, headings, and lists
  • Flexible placement - Placeholders work in document body, tables, headers, and footers
  • Style preservation - Original style from templates are preserved

📝 Markdown Formatting

Format Syntax Result
Bold **text** text
Italic *text* text
Code `code` code
Link [text](url) text
Heading # Heading Heading 1-6
Bullet list - item • item
Numbered list 1. item 1. item
Nested list 3 spaces + marker Indented item

🚀 Quick Start

  1. Create a Word template with placeholders:

    Dear {{recipient_name}},
    
    {{body}}
    
    Best regards,
    {{sender_name}}
    
  2. Configure in config/docx_templates.yaml:

    templates:
      - name: letter
        description: Generate a letter with markdown support
        docx_path: letter_template.docx
        args:
          - name: recipient_name
            type: string
            required: true
          - name: body
            type: string
            required: true
          - name: sender_name
            type: string
            required: true
  3. Use the automatically registered MCP tool to generate documents!

📋 Word Styles

For proper formatting, ensure your template includes these Word styles:

  • Headings: Heading 1 through Heading 6
  • Lists: List Bullet, List Bullet 2, List Bullet 3, List Number, List Number 2, List Number 3
  • Other: Normal, Quote, Table Grid

💡 Tip: Customize these styles in your template to match your branding!

📚 Documentation

See the updated README for full documentation.

What's Changed

  • Add dynamic DOCX template support and enhance markdown parsing by @dvejsada in #31

Full Changelog: v2.0...v3.0

v2.0 - 😎 Presentation improvements

04 Jan 08:41

Choose a tag to compare

New features

This release add new possibilities for presentation creation. It allows to create slides with tables, images, graphs, two-columns slides etc. (see the presentation example in the release). These new possibilities however brought some breaking changes for the custom presentation templates (see below).

In addition, new MinIO storage option has been added.

⚠️ BREAKING CHANGE - Slide Layout Indices Overview

This release brings breaking change for custom presentation templates. The order of the template slides now must be as follows (to adhere to build in pptx template):

Index Description
0 Title Slide
1 Title and Content
2 Section Header
3 Two Content (no subheaders)
4 Comparison (with subheaders)
5 Title Only
6 Blank

What's Changed

  • Add MinIO backend configuration by @Kalagaar in #30
  • Add new slide types support by @Copilot in #28

New Contributors

Full Changelog: v1.3...v2.0

v1.3 ♻️ Server Refactoring

23 Oct 13:16
dc5efc7

Choose a tag to compare

BREAKING CHANGES

This release brings breaking changes to server setup. See readme for current setup instructions. The breaking changes namely include the following:

  1. Env variables moved from docker-compose to .env file (see example in the repo).
  2. Custom templates folder must be mounted to app/custom_templates and the required naming of the custom template files have changed.

What's Changed

Complete refactoring of the MCP servers to allow for better maintenance and future extension. The refactor centralizes server settings and logging.

It should be now easier to contribute and develop new functions, contributions are definitely welcome.

Full Changelog: v1.2...v1.3

v1.2 - 💼 New storage options, bug fix

22 Oct 21:37

Choose a tag to compare

What's Changed

  • Add Google Cloud Storage support as an upload strategy option
  • Add Azure Blob Storage support as an upload strategy option
  • Add configurable URL validity
  • Fix remaining text in docx default template

Full Changelog: v1.1...v1.2

v1.1 - New Dynamic Email tools

27 Sep 15:59

Choose a tag to compare

🚀Major refactoring of email tool

Refactored the email tool. You may now mount your default email template that will be used for general email tool (thus having only a general content must) or you may even define you specific email tools by providing the html file and placeholder description in yaml (see Readme), fastmcp will dynamically create these as separate tools upon server startup. Perfect in cases where you want to ensure the e-mail formatting, structure and only need certain specific things generated by LLM.

Feel free to start a discussion if you are unsure how to configure the custom tool. 😉