mcpField
A
aigroup-mdtoword-mcp

aigroup-mdtoword-mcp

Local
github.com/jackdark425Productivity14Updated 27w ago

About aigroup-mdtoword-mcp

aigroup-mdtoword-mcp is an MCP server for turning Markdown into styled Word documents. It is intended for document workflows that need tables, formulas, images, Mermaid diagrams, and reusable templates, and also provides HTTP deployment options.

Key features

  1. 01Markdown-to-DOCX conversion
  2. 02Formatting for headings, tables, and code
  3. 03Inline and block formula support
  4. 04Local and remote image embedding
  5. 05Mermaid diagram rendering
  6. 06Headers, footers, and page numbering

Use cases

  1. 01Generate styled Word reports from Markdown
  2. 02Convert CSV or JSON data into Markdown tables
  3. 03Create documents with formulas, images, or Mermaid diagrams

MCP support

The MCP server exposes tools to convert Markdown to DOCX and tabular CSV or JSON data to Markdown, along with templates, style guides, and metrics resources. It can be configured in Claude Desktop and other compatible clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"jackdark425-aigroup-mdtoword": {
"command": "npx",
"args": [
"-y",
"aigroup-mdtoword-mcp"
]
}
}
}
Run commandnpx -y aigroup-mdtoword-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmaigroup-mdtoword-mcp4.0.2

Tools

4

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
filenamestringYesOutput Word document filename; must end with .docx
markdownstringNoMarkdown-formatted text content (choose either this or inputPath)
templateobjectNoTemplate configuration. Use a preset template to quickly apply a professional style, or combine it with styleConfig
template.typeenumYesTemplate type: preset = preset templatepreset
template.presetIdstringYesPreset template ID. Available values: academic (academic paper), business (business report), customer-analysis (customer analysis—default), technical (technical document), minimal (minimalist style), enhanced-features (enhanced features example)
inputPathstringNoPath to the Markdown file (choose either this or markdown)
outputPathstringNoOutput directory; defaults to the current working directory
styleConfigobjectNoStyle configuration object. Supports the theme system (theme), watermark (watermark), headers and footers (headerFooter), automatic table of contents (tableOfContents), table styles (tableStyles), image styles (imageStyles), and more. Can be combined with template to override the template's default styles
styleConfig.themeobjectNo
styleConfig.theme.namestringNoTheme name
styleConfig.theme.fontsobjectNo
styleConfig.theme.fonts.bodystringNoBody font
styleConfig.theme.fonts.codestringNoCode font
styleConfig.theme.fonts.headingstringNoHeading font
styleConfig.theme.colorsobjectNo
styleConfig.theme.colors.textstringNoText color (6-digit hexadecimal)
styleConfig.theme.colors.primarystringNoPrimary color (6-digit hexadecimal)
styleConfig.theme.colors.secondarystringNoSecondary color (6-digit hexadecimal)
styleConfig.theme.spacingobjectNo
styleConfig.theme.spacing.largenumberNoLarge spacing (twips)
styleConfig.theme.spacing.smallnumberNoSmall spacing (twips)
styleConfig.theme.spacing.mediumnumberNoMedium spacing (twips)
styleConfig.documentobjectNo
styleConfig.document.defaultFontstringNoDefault font
styleConfig.document.defaultSizenumberNoDefault font size (half-points)
styleConfig.watermarkobjectNo
styleConfig.watermark.fontstringNoWatermark font
styleConfig.watermark.sizenumberNoWatermark font size
styleConfig.watermark.textstringYesWatermark text
styleConfig.watermark.colorstringNoWatermark color (6-digit hexadecimal)
styleConfig.watermark.opacitynumberNoOpacity (0-1)
styleConfig.watermark.rotationnumberNoRotation angle (-90 to 90)
styleConfig.imageStylesobjectNo
styleConfig.imageStyles.defaultobjectNo
styleConfig.imageStyles.default.borderobjectNo
styleConfig.imageStyles.default.maxWidthnumberNoMaximum width (twips)
styleConfig.imageStyles.default.alignmentenumNoAlignmentleft | center | right
styleConfig.imageStyles.default.maxHeightnumberNoMaximum height (twips)
styleConfig.imageStyles.default.maintainAspectRatiobooleanNoMaintain aspect ratio
styleConfig.tableStylesobjectNo
styleConfig.tableStyles.defaultobjectNo
styleConfig.tableStyles.default.stripedRowsobjectNo
styleConfig.tableStyles.default.columnWidthsarrayNoColumn width array (twips)
styleConfig.tableStyles.default.cellAlignmentobjectNo
styleConfig.headerFooterobjectNoHeader and footer configuration. Supports features such as displaying page numbers and total pages, a different first page, and different odd and even pages. Page number formats can be combined flexibly, such as "第 1 页 / 共 5 页" and "Page 1 of 5".
styleConfig.headerFooter.footerobjectNoDefault footer configuration (applies to all pages or odd pages). Supports flexible combinations of page number formats
styleConfig.headerFooter.footer.contentstringNoFooter content text (text before the page number, such as "第 ")
styleConfig.headerFooter.footer.alignmentenumNoFooter alignmentleft | center | right | both
styleConfig.headerFooter.footer.showPageNumberbooleanNoWhether to display the current page number. When set to true, the page number is displayed in the footer
styleConfig.headerFooter.footer.showTotalPagesbooleanNoWhether to display the total number of pages. When set to true, the total number of pages in the document is displayed
styleConfig.headerFooter.footer.pageNumberFormatstringNoText after the page number (text immediately following the page number, such as " 页"). Example: content="第 " + page number + pageNumberFormat=" 页" = "第 1 页"
styleConfig.headerFooter.footer.totalPagesFormatstringNoConnecting text before the total page count (e.g., “ / 共 ”, “ of ”). Example: the full format is “第 1 页 / 共 5 页”
styleConfig.headerFooter.headerobjectNoDefault header configuration (applies to all pages or odd-numbered pages)
styleConfig.headerFooter.header.contentstringNoHeader content text
styleConfig.headerFooter.header.alignmentenumNoHeader alignment: left (left-aligned), center (centered), right (right-aligned), both (justified)left | center | right | both
styleConfig.headerFooter.evenPageFooterobjectNoFooter for even-numbered pages only (requires setting differentOddEven to true)
styleConfig.headerFooter.evenPageFooter.contentstringNoFooter content for even-numbered pages
styleConfig.headerFooter.evenPageFooter.alignmentenumNoFooter alignment for even-numbered pagesleft | center | right | both
styleConfig.headerFooter.evenPageFooter.showPageNumberbooleanNoWhether to show page numbers on even-numbered pages
styleConfig.headerFooter.evenPageFooter.showTotalPagesbooleanNoWhether to show the total page count on even-numbered pages
styleConfig.headerFooter.evenPageFooter.pageNumberFormatstringNoPage number format for even-numbered pages
styleConfig.headerFooter.evenPageFooter.totalPagesFormatstringNoTotal page count format for even-numbered pages
styleConfig.headerFooter.evenPageHeaderobjectNoHeader for even-numbered pages only (requires setting differentOddEven to true). Used to display different content on odd and even pages when printing double-sided
styleConfig.headerFooter.evenPageHeader.contentstringNoHeader content for even-numbered pages
styleConfig.headerFooter.evenPageHeader.alignmentenumNoHeader alignment for even-numbered pagesleft | center | right | both
styleConfig.headerFooter.firstPageFooterobjectNoFooter for the first page only (requires setting differentFirstPage to true). Commonly used to hide page numbers on cover pages
styleConfig.headerFooter.firstPageFooter.contentstringNoFooter content for the first page
styleConfig.headerFooter.firstPageFooter.alignmentenumNoFooter alignment for the first pageleft | center | right | both
styleConfig.headerFooter.firstPageFooter.showPageNumberbooleanNoWhether to show the page number on the first page
styleConfig.headerFooter.firstPageFooter.showTotalPagesbooleanNoWhether to show the total page count on the first page
styleConfig.headerFooter.firstPageFooter.pageNumberFormatstringNoPage number format for the first page
styleConfig.headerFooter.firstPageFooter.totalPagesFormatstringNoTotal page count format for the first page
styleConfig.headerFooter.firstPageHeaderobjectNoHeader specific to the first page (set differentFirstPage to true). Commonly used to hide the header or display special content on the cover page
styleConfig.headerFooter.firstPageHeader.contentstringNoFirst-page header content
styleConfig.headerFooter.firstPageHeader.alignmentenumNoFirst-page header alignmentleft | center | right | both
styleConfig.headerFooter.pageNumberStartnumberNoStarting page number. Defaults to 1; set to another number, such as 5, to start numbering from page 5
styleConfig.headerFooter.differentOddEvenbooleanNoWhether odd and even pages differ. When set to true, even pages use evenPageHeader and evenPageFooter, for duplex printing
styleConfig.headerFooter.differentFirstPagebooleanNoWhether the first page differs. When set to true, the first page uses firstPageHeader and firstPageFooter, commonly for cover pages
styleConfig.headerFooter.pageNumberFormatTypeenumNoPage number format: decimal (Arabic numerals 1,2,3), upperRoman (uppercase Roman numerals I,II,III), lowerRoman (lowercase Roman numerals i,ii,iii), upperLetter (uppercase letters A,B,C), lowerLetter (lowercase letters a,b,c)decimal | upperRoman | lowerRoman | upperLetter | lowerLetter
styleConfig.headingStylesobjectNoHeading style configuration
styleConfig.paragraphStylesobjectNoParagraph style configuration
styleConfig.tableOfContentsobjectNo
styleConfig.tableOfContents.titlestringNoTable of contents title
styleConfig.tableOfContents.levelsarrayNoHeading levels to include
styleConfig.tableOfContents.enabledbooleanNoWhether to enable the table of contents
styleConfig.tableOfContents.tabLeaderenumNoPage number leaderdot | hyphen | underscore | none
styleConfig.tableOfContents.showPageNumbersbooleanNoWhether to show page numbers

Details

From the project README

AI Group Markdown to Word MCP Server

License: MIT Node.js MCP Protocol Version

Professional Markdown-to-Word conversion over MCP, with advanced styling, tables, formulas, images, Mermaid rendering, and HTTP deployment support.

Overview

aigroup-mdtoword-mcp is an MCP server for generating professional .docx documents from Markdown content.

It is designed for:

  • converting Markdown into structured Word documents
  • applying reusable templates and styling presets
  • rendering tables, formulas, images, and Mermaid diagrams
  • exposing both MCP and simplified HTTP endpoints
  • integrating with Claude Desktop and other MCP-compatible clients

Highlights

  • Markdown to DOCX conversion with document styling and layout control
  • Advanced formatting for headings, tables, lists, code blocks, and blockquotes
  • Math support for inline and block formulas
  • Image embedding for local and remote assets
  • Mermaid rendering with safe fallback to code blocks
  • Header / footer / page numbering / watermark support
  • Template, resource, and prompt support for guided usage
  • HTTP deployment options including Cloudflare Worker workflows

Quick Start

Requirements
  • Node.js >= 18
  • npm >= 8
Run with npx
npx -y aigroup-mdtoword-mcp
Install locally
git clone https://github.com/jackdark425/aigroup-mdtoword-mcp.git
cd aigroup-mdtoword-mcp
npm install
npm run build
npm start

MCP Client Configuration

Claude Desktop / compatible MCP clients
{
  "mcpServers": {
    "markdown-to-word": {
      "command": "npx",
      "args": ["-y", "aigroup-mdtoword-mcp"]
    }
  }
}
Local build output
{
  "mcpServers": {
    "markdown-to-word": {
      "command": "node",
      "args": ["/path/to/aigroup-mdtoword-mcp/dist/index.js"]
    }
  }
}

Tools

markdown_to_docx

Converts Markdown content or a Markdown file into a .docx document.

Typical inputs include:

  • markdown
  • inputPath
  • filename
  • outputPath
  • styleConfig
table_data_to_markdown

Converts CSV or JSON tabular data into formatted Markdown tables.

Typical inputs include:

  • data
  • format
  • style
  • hasHeader

Resources

Templates
  • template://customer-analysis
  • template://academic
  • template://business
  • template://technical
  • template://minimal
Style Guides
  • style-guide://quick-start
  • style-guide://advanced
  • style-guide://templates
Metrics
  • metrics://conversion-stats
  • metrics://memory-usage

Styling Capabilities

The styling system supports:

  • document-level fonts, colors, and page layout
  • heading and paragraph styles
  • table presets and formatting
  • image sizing and placement
  • code block styling
  • headers, footers, page numbers, and watermarks

Included table styles cover common business, academic, financial, technical, and minimal report layouts.

Example

# Project Report

## Executive Summary
This is a sample report with **bold text** and *italic text*.

- Feature 1: Complete Markdown support
- Feature 2: Advanced styling system
- Feature 3: Professional document layout

| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Data 1   | Data 2   | Data 3   |
| Data 4   | Data 5   | Data 6   |

Mathematical formula: $E = mc^2$

```mermaid
flowchart TD
  A[Start] --> B{Check input}
  B -->|Valid| C[Generate DOCX]
  B -->|Invalid| D[Return error]
```

Deployment

HTTP server
npm run server:http
Cloudflare Worker
npm install -g wrangler
wrangler login
wrangler deploy

Related endpoints typically include:

  • /health
  • /mcp
  • /convert
  • /.well-known/ai-plugin.json
  • /openapi.yaml
  • /openapi.json

See detailed guidance in docs/DEPLOYMENT_INSTRUCTIONS.md.

Project Structure

src/
├── index.ts
├── converter/
├── template/
├── types/
└── utils/

Development

npm run build
npm test

Additional test commands:

  • npm run test:math
  • npm run test:images
  • npm run test:pages
  • npm run test:mermaid

License & Usage

This project is released under the MIT License.

In practical terms, MIT allows you to:

  • use this project in personal, internal, academic, or commercial scenarios
  • copy, modify, merge, publish, and distribute the code
  • build proprietary or open-source products on top of it
  • ship derivative works as long as the required copyright and license notice is preserved

Please keep in mind:

  • you must retain the original copyright notice and MIT license text in copies or substantial portions of the software
  • the software is provided "AS IS", without warranty of any kind
  • if you package this project into hosted services, desktop tools, plugins, or internal workflows, you are responsible for your own compliance, security review, and downstream usage constraints

See the full text in LICENSE.

Acknowledgments

Core Dependencies & Ecosystem
Community Inspiration
  • Inspired by the broader MCP community and ecosystem

Support

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.