关于 aigroup-mdtoword-mcp
aigroup-mdtoword-mcp 是将 Markdown 转换为带样式 Word 文档的 MCP 服务,适用于需要表格、公式、图片、Mermaid 图表和可复用模板的文档流程,也支持通过 HTTP 部署。
主要功能
- 01Markdown 转 DOCX
- 02标题、表格和代码格式设置
- 03支持行内与块级公式
- 04嵌入本地和远程图片
- 05渲染 Mermaid 图表
- 06页眉、页脚和页码
适用场景
- 01从 Markdown 生成带样式的 Word 报告
- 02将 CSV 或 JSON 数据转换为 Markdown 表格
- 03创建包含公式、图片或 Mermaid 图表的文档
MCP 相关
MCP 服务提供 Markdown 转 DOCX、表格 CSV 或 JSON 数据转 Markdown 的工具,并提供模板、样式指南和指标资源。可配置给 Claude Desktop 等兼容客户端使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filename | string | 是 | 输出的Word文档文件名,必须以.docx结尾 |
| markdown | string | 否 | Markdown格式的文本内容(与inputPath二选一) |
| template | object | 否 | 模板配置。使用预设模板可以快速应用专业样式,也可以与styleConfig组合使用 |
| template.type | enum | 是 | 模板类型:preset=预设模板preset |
| template.presetId | string | 是 | 预设模板ID。可选值:academic(学术论文)、business(商务报告)、customer-analysis(客户分析-默认)、technical(技术文档)、minimal(极简风格)、enhanced-features(增强功能示例) |
| inputPath | string | 否 | Markdown文件路径(与markdown二选一) |
| outputPath | string | 否 | 输出目录,默认为当前工作目录 |
| styleConfig | object | 否 | 样式配置对象。支持主题系统(theme)、水印(watermark)、页眉页脚(headerFooter)、自动目录(tableOfContents)、表格样式(tableStyles)、图片样式(imageStyles)等。可与template组合使用以覆盖模板的默认样式 |
| styleConfig.theme | object | 否 | |
| styleConfig.theme.name | string | 否 | 主题名称 |
| styleConfig.theme.fonts | object | 否 | |
| styleConfig.theme.fonts.body | string | 否 | 正文字体 |
| styleConfig.theme.fonts.code | string | 否 | 代码字体 |
| styleConfig.theme.fonts.heading | string | 否 | 标题字体 |
| styleConfig.theme.colors | object | 否 | |
| styleConfig.theme.colors.text | string | 否 | 文本颜色(6位十六进制) |
| styleConfig.theme.colors.primary | string | 否 | 主色调(6位十六进制) |
| styleConfig.theme.colors.secondary | string | 否 | 辅助色(6位十六进制) |
| styleConfig.theme.spacing | object | 否 | |
| styleConfig.theme.spacing.large | number | 否 | 大间距(缇) |
| styleConfig.theme.spacing.small | number | 否 | 小间距(缇) |
| styleConfig.theme.spacing.medium | number | 否 | 中间距(缇) |
| styleConfig.document | object | 否 | |
| styleConfig.document.defaultFont | string | 否 | 默认字体 |
| styleConfig.document.defaultSize | number | 否 | 默认字号(半点) |
| styleConfig.watermark | object | 否 | |
| styleConfig.watermark.font | string | 否 | 水印字体 |
| styleConfig.watermark.size | number | 否 | 水印字号 |
| styleConfig.watermark.text | string | 是 | 水印文本 |
| styleConfig.watermark.color | string | 否 | 水印颜色(6位十六进制) |
| styleConfig.watermark.opacity | number | 否 | 透明度(0-1) |
| styleConfig.watermark.rotation | number | 否 | 旋转角度(-90到90) |
| styleConfig.imageStyles | object | 否 | |
| styleConfig.imageStyles.default | object | 否 | |
| styleConfig.imageStyles.default.border | object | 否 | |
| styleConfig.imageStyles.default.maxWidth | number | 否 | 最大宽度(缇) |
| styleConfig.imageStyles.default.alignment | enum | 否 | 对齐方式left | center | right |
| styleConfig.imageStyles.default.maxHeight | number | 否 | 最大高度(缇) |
| styleConfig.imageStyles.default.maintainAspectRatio | boolean | 否 | 保持宽高比 |
| styleConfig.tableStyles | object | 否 | |
| styleConfig.tableStyles.default | object | 否 | |
| styleConfig.tableStyles.default.stripedRows | object | 否 | |
| styleConfig.tableStyles.default.columnWidths | array | 否 | 列宽数组(缇) |
| styleConfig.tableStyles.default.cellAlignment | object | 否 | |
| styleConfig.headerFooter | object | 否 | 页眉页脚配置。支持显示页码、总页数、不同首页、奇偶页不同等功能。页码格式可灵活组合,如"第 1 页 / 共 5 页"、"Page 1 of 5"等 |
| styleConfig.headerFooter.footer | object | 否 | 默认页脚配置(应用于所有页或奇数页)。支持灵活的页码格式组合 |
| styleConfig.headerFooter.footer.content | string | 否 | 页脚内容文本(页码前的文字,如"第 ") |
| styleConfig.headerFooter.footer.alignment | enum | 否 | 页脚对齐方式left | center | right | both |
| styleConfig.headerFooter.footer.showPageNumber | boolean | 否 | 是否显示当前页码。设为true时会在页脚显示页码 |
| styleConfig.headerFooter.footer.showTotalPages | boolean | 否 | 是否显示总页数。设为true时会显示文档总页数 |
| styleConfig.headerFooter.footer.pageNumberFormat | string | 否 | 页码后缀文本(紧跟页码后的文字,如" 页")。示例:content="第 " + 页码 + pageNumberFormat=" 页" = "第 1 页" |
| styleConfig.headerFooter.footer.totalPagesFormat | string | 否 | 总页数前的连接文本(如“ / 共 ”、“ of ”)。示例:完整格式为“第 1 页 / 共 5 页” |
| styleConfig.headerFooter.header | object | 否 | 默认页眉配置(应用于所有页或奇数页) |
| styleConfig.headerFooter.header.content | string | 否 | 页眉内容文本 |
| styleConfig.headerFooter.header.alignment | enum | 否 | 页眉对齐方式:left(左对齐)、center(居中)、right(右对齐)、both(两端对齐)left | center | right | both |
| styleConfig.headerFooter.evenPageFooter | object | 否 | 偶数页专用页脚(需设置differentOddEven为true) |
| styleConfig.headerFooter.evenPageFooter.content | string | 否 | 偶数页页脚内容 |
| styleConfig.headerFooter.evenPageFooter.alignment | enum | 否 | 偶数页页脚对齐left | center | right | both |
| styleConfig.headerFooter.evenPageFooter.showPageNumber | boolean | 否 | 偶数页是否显示页码 |
| styleConfig.headerFooter.evenPageFooter.showTotalPages | boolean | 否 | 偶数页是否显示总页数 |
| styleConfig.headerFooter.evenPageFooter.pageNumberFormat | string | 否 | 偶数页页码格式 |
| styleConfig.headerFooter.evenPageFooter.totalPagesFormat | string | 否 | 偶数页总页数格式 |
| styleConfig.headerFooter.evenPageHeader | object | 否 | 偶数页专用页眉(需设置differentOddEven为true)。用于双面打印时奇偶页显示不同内容 |
| styleConfig.headerFooter.evenPageHeader.content | string | 否 | 偶数页页眉内容 |
| styleConfig.headerFooter.evenPageHeader.alignment | enum | 否 | 偶数页页眉对齐left | center | right | both |
| styleConfig.headerFooter.firstPageFooter | object | 否 | 首页专用页脚(需设置differentFirstPage为true)。常用于封面页不显示页码 |
| styleConfig.headerFooter.firstPageFooter.content | string | 否 | 首页页脚内容 |
| styleConfig.headerFooter.firstPageFooter.alignment | enum | 否 | 首页页脚对齐left | center | right | both |
| styleConfig.headerFooter.firstPageFooter.showPageNumber | boolean | 否 | 首页是否显示页码 |
| styleConfig.headerFooter.firstPageFooter.showTotalPages | boolean | 否 | 首页是否显示总页数 |
| styleConfig.headerFooter.firstPageFooter.pageNumberFormat | string | 否 | 首页页码格式 |
| styleConfig.headerFooter.firstPageFooter.totalPagesFormat | string | 否 | 首页总页数格式 |
| styleConfig.headerFooter.firstPageHeader | object | 否 | 首页专用页眉(需设置differentFirstPage为true)。常用于封面页不显示页眉或显示特殊内容 |
| styleConfig.headerFooter.firstPageHeader.content | string | 否 | 首页页眉内容 |
| styleConfig.headerFooter.firstPageHeader.alignment | enum | 否 | 首页页眉对齐方式left | center | right | both |
| styleConfig.headerFooter.pageNumberStart | number | 否 | 页码起始编号。默认为1,可设置为其他数字如5表示从第5页开始编号 |
| styleConfig.headerFooter.differentOddEven | boolean | 否 | 是否奇偶页不同。设为true时偶数页使用evenPageHeader和evenPageFooter,用于双面打印 |
| styleConfig.headerFooter.differentFirstPage | boolean | 否 | 是否首页不同。设为true时首页使用firstPageHeader和firstPageFooter,常用于封面页 |
| styleConfig.headerFooter.pageNumberFormatType | enum | 否 | 页码数字格式:decimal(阿拉伯数字1,2,3)、upperRoman(大写罗马I,II,III)、lowerRoman(小写罗马i,ii,iii)、upperLetter(大写字母A,B,C)、lowerLetter(小写字母a,b,c)decimal | upperRoman | lowerRoman | upperLetter | lowerLetter |
| styleConfig.headingStyles | object | 否 | 标题样式配置 |
| styleConfig.paragraphStyles | object | 否 | 段落样式配置 |
| styleConfig.tableOfContents | object | 否 | |
| styleConfig.tableOfContents.title | string | 否 | 目录标题 |
| styleConfig.tableOfContents.levels | array | 否 | 包含的标题级别 |
| styleConfig.tableOfContents.enabled | boolean | 否 | 是否启用目录 |
| styleConfig.tableOfContents.tabLeader | enum | 否 | 页码引导符dot | hyphen | underscore | none |
| styleConfig.tableOfContents.showPageNumbers | boolean | 否 | 是否显示页码 |
详细介绍
AI Group Markdown 转 Word MCP 服务
通过 MCP 将 Markdown 专业地转换为 Word,支持高级样式、表格、公式、图片、Mermaid 渲染和 HTTP 部署。
概述
aigroup-mdtoword-mcp 是一个 MCP 服务,可根据 Markdown 内容生成专业的 .docx 文档。
适用于:
- 将 Markdown 转换为结构化的 Word 文档
- 应用可重复使用的模板和样式预设
- 渲染表格、公式、图片和 Mermaid 图表
- 同时提供 MCP 和简化的 HTTP 端点
- 与 Claude Desktop 及其他兼容 MCP 的客户端集成
亮点
- Markdown 转 DOCX,支持文档样式和布局控制
- 高级格式设置,支持标题、表格、列表、代码块和引用块
- 数学公式支持,支持行内公式和块级公式
- 图片嵌入,支持本地和远程资源
- Mermaid 渲染,失败时安全回退为代码块
- 支持页眉 / 页脚 / 页码 / 水印
- 支持模板、资源和提示词,助力引导式使用
- HTTP 部署选项,包括 Cloudflare Worker 工作流
快速开始
要求
- Node.js >= 18
- npm >= 8
使用 npx 运行
npx -y aigroup-mdtoword-mcp
本地安装
git clone https://github.com/jackdark425/aigroup-mdtoword-mcp.git
cd aigroup-mdtoword-mcp
npm install
npm run build
npm start
MCP 客户端配置
Claude Desktop / 兼容 MCP 的客户端
{
"mcpServers": {
"markdown-to-word": {
"command": "npx",
"args": ["-y", "aigroup-mdtoword-mcp"]
}
}
}
本地构建输出
{
"mcpServers": {
"markdown-to-word": {
"command": "node",
"args": ["/path/to/aigroup-mdtoword-mcp/dist/index.js"]
}
}
}
工具
markdown_to_docx
将 Markdown 内容或 Markdown 文件转换为 .docx 文档。
常见输入包括:
markdowninputPathfilenameoutputPathstyleConfig
table_data_to_markdown
将 CSV 或 JSON 表格数据转换为格式化的 Markdown 表格。
常见输入包括:
dataformatstylehasHeader
资源
模板
template://customer-analysistemplate://academictemplate://businesstemplate://technicaltemplate://minimal
样式指南
style-guide://quick-startstyle-guide://advancedstyle-guide://templates
指标
metrics://conversion-statsmetrics://memory-usage
样式功能
样式系统支持:
- 文档级字体、颜色和页面布局
- 标题和段落样式
- 表格预设和格式设置
- 图片尺寸和位置
- 代码块样式
- 页眉、页脚、页码和水印
内置表格样式涵盖常见的商业、学术、财务、技术和简约报告布局。
示例
# 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]
```
部署
HTTP 服务
npm run server:http
Cloudflare Worker
npm install -g wrangler
wrangler login
wrangler deploy
相关端点通常包括:
/health/mcp/convert/.well-known/ai-plugin.json/openapi.yaml/openapi.json
请参阅 docs/DEPLOYMENT_INSTRUCTIONS.md 中的详细指南。
项目结构
src/
├── index.ts
├── converter/
├── template/
├── types/
└── utils/
开发
npm run build
npm test
其他测试命令:
npm run test:mathnpm run test:imagesnpm run test:pagesnpm run test:mermaid
许可证与使用
本项目根据 MIT 许可证 发布。
实际上,MIT 许可证允许你:
- 在个人、内部、学术或商业场景中使用本项目
- 复制、修改、合并、发布和分发代码
- 基于本项目构建专有产品或开源产品
- 发布衍生作品,前提是保留所需的版权声明和许可证声明
请注意:
- 你必须在软件副本或软件的实质性部分中保留原始版权声明和 MIT 许可证文本
- 本软件按“原样”提供,不提供任何形式的担保
- 如果你将本项目打包到托管服务、桌面工具、插件或内部工作流中,你需要自行负责合规性、安全审查以及下游使用限制
请参阅 LICENSE 中的完整文本。
致谢
核心依赖项与生态系统
-
Model Context Protocol SDK
- 仓库:https://github.com/modelcontextprotocol/servers
- 作用:MCP 服务协议集成
-
Dolan Miu 开发的 docx
- 仓库:https://github.com/dolanmiu/docx
- 作用:核心 Word 文档生成引擎
社区启发
- 灵感来自更广泛的 MCP 社区和生态系统
支持
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。