Integrations
Requires Node.js runtime (v18 or later) to execute the MCP server that interfaces with Microsoft Word.
Uses npm for dependency management and running scripts to build and start the Word integration server.
Server built with TypeScript to provide programmatic interaction with Microsoft Word documents through MCP tools.
MCP Office 互操作 Word 服务器
该项目实现了一个模型上下文协议 (MCP)服务器,允许使用 Windows 上的 COM Interop 与 Microsoft Word 文档进行交互。
它提供 MCP 工具以编程方式执行常见的文字处理任务。
特征
- 通过 COM Interop (
winax
) 包装常见的 Microsoft Word 操作。 - 将功能公开为 MCP 工具。
- 支持 MCP 通信的
stdio
和sse
传输。 - 使用 TypeScript 构建并使用
@modelcontextprotocol/sdk
。
先决条件
- Node.js(建议使用 v18 或更高版本)
- npm
- 安装在 Windows 机器上的 Microsoft Word。
安装
- 克隆存储库或下载源代码。
- 导航到终端中的项目目录。
- 安装依赖项:Copy
建筑
将 TypeScript 代码编译为 JavaScript:
这会将编译后的文件输出到dist
目录。
运行服务器
服务器可以使用两种不同的 MCP 传输运行: stdio
或sse
。
stdio 传输
这是默认模式。适用于通过标准输入/输出进行通信的本地客户端。
或者
使用 stdio 方法连接您的 MCP 客户端(例如,MCP Inspector),指向node dist/index.js
命令。
SSE(服务器发送事件)传输
此模式使用 HTTP 和服务器发送事件,适用于基于 Web 或远程客户端。
PowerShell:
Bash/命令:
服务器将启动一个 HTTP 服务器,通常在端口 3001(或PORT
环境变量指定的端口)。
- SSE 端点:
http://localhost:3001/sse
- 消息端点(用于客户端 POST):
http://localhost:3001/messages
使用 SSE 方法连接您的 MCP 客户端,并提供 SSE 端点 URL。
可用工具
服务器公开以下工具(工具名称以word_
为前缀):
文档操作:
word_createDocument
:创建一个新的空白 Word 文档。word_openDocument
:打开现有文档。filePath
(字符串):文档的绝对路径。
word_saveActiveDocument
:保存当前活动文档。word_saveActiveDocumentAs
:将活动文档保存到新路径/格式。filePath
(字符串):保存到的绝对路径。fileFormat
(数字,可选):数字WdSaveFormat
值(例如,docx 为 16,pdf 为 17)。
word_closeActiveDocument
:关闭活动文档。saveChanges
(数字,可选):WdSaveOptions
值(0=否,-1=是,-2=提示)。默认值:0。
文本操作:
word_insertText
:在选择处插入文本。text
(字符串):要插入的文本。
word_deleteText
:删除与选择相关的文本。count
(数字,可选):要删除的单元数(默认值:1)。正数表示向前,负数表示向后。unit
(数字,可选):WdUnits
值(1=Char,2=Word,等等)。默认值:1。
word_findAndReplace
:查找并替换文本。findText
(字符串):要查找的文本。replaceText
(字符串):替换文本。matchCase
(布尔值,可选):默认值:false。matchWholeWord
(布尔值,可选):默认值:false。replaceAll
(布尔值,可选):默认值:true。
word_toggleBold
:切换所选内容的粗体格式。word_toggleItalic
:切换所选内容的斜体格式。word_toggleUnderline
:切换选择的下划线格式。underlineStyle
(数字,可选):WdUnderline
值(默认值:1=单行)。
段落格式:
word_setParagraphAlignment
:设置段落对齐方式。alignment
(数字):WdParagraphAlignment
值(0=左,1=居中,2=右,3=两端对齐)。
word_setParagraphLeftIndent
:设置左缩进。indentPoints
(数字):缩进值(以点为单位)。
word_setParagraphRightIndent
:设置右缩进。indentPoints
(数字):缩进值(以点为单位)。
word_setParagraphFirstLineIndent
:设置首行/悬挂缩进。indentPoints
(数字):缩进值(以点为单位)(正数=缩进,负数=悬挂)。
word_setParagraphSpaceBefore
:设置段落前的空间。spacePoints
(数字):以点为单位的空间值。
word_setParagraphSpaceAfter
:设置段落后的空格。spacePoints
(数字):以点为单位的空间值。
word_setParagraphLineSpacing
:设置行距。lineSpacingRule
(数字):WdLineSpacing
值(0=单倍,1=1.5,2=双倍,3=至少,4=精确,5=多重)。lineSpacingValue
(数字,可选):规则 3、4、5 所需的值。
表操作:
word_addTable
:在选择处添加一个表格。numRows
(数字):行数。numCols
(数字):列数。
word_setTableCellText
:设置表格单元格中的文本。tableIndex
(数字):基于 1 的表索引。rowIndex
(数字):从 1 开始的行索引。colIndex
(数字):基于 1 的列索引。text
(字符串):要设置的文本。
word_insertTableRow
:在表中插入一行。tableIndex
(数字):基于 1 的表索引。beforeRowIndex
(数字,可选):在此基于 1 的行索引之前插入(如果省略则插入到末尾)。
word_insertTableColumn
:将一列插入表中。tableIndex
(数字):基于 1 的表索引。beforeColIndex
(数字,可选):在此基于 1 的列索引之前插入(如果省略,则插入到右端)。
word_applyTableAutoFormat
:将样式应用于表格。tableIndex
(数字):基于 1 的表索引。formatName
(字符串 | 数字):样式名称或WdTableFormat
值。
图像操作:
word_insertPicture
:插入内嵌图片。filePath
(字符串):图像文件的绝对路径。linkToFile
(布尔值,可选):默认值:false。saveWithDocument
(布尔值,可选):默认值:true。
word_setInlinePictureSize
:调整内嵌图片的大小。shapeIndex
(数字):内联形状的基于 1 的索引。heightPoints
(数字):高度(以点为单位)(-1 或 0 为自动调整大小)。widthPoints
(数字):宽度(以点为单位)(-1 或 0 为自动调整大小)。lockAspectRatio
(布尔值,可选):默认值:true。
页眉/页脚操作:
word_setHeaderFooterText
:设置页眉或页脚中的文本。text
(字符串):文本内容。isHeader
(布尔值):如果为页眉,则为 True;如果为页脚,则为 false。sectionIndex
(数字,可选):基于 1 的部分索引(默认值:1)。headerFooterType
(数字,可选):WdHeaderFooterIndex
值(1=Primary,2=FirstPage,3=EvenPages)。默认值:1。
页面设置操作:
word_setPageMargins
:设置页边距。topPoints
(数字):顶部边距(以点为单位)。bottomPoints
(数字):底部边距(以点为单位)。leftPoints
(数字):左边距(以点为单位)。rightPoints
(数字):右边距(以点为单位)。
word_setPageOrientation
:设置页面方向。orientation
(数字):WdOrientation
值(0=纵向,1=横向)。
word_setPaperSize
:设置纸张大小。paperSize
(数字):WdPaperSize
值(例如,1=Letter,8=A4)。
笔记
- 该服务器要求在运行该服务器的机器上安装 Microsoft Word 并可通过 COM Interop 访问。
- COM 操作的错误处理很简单。稳健的生产使用可能需要更详细的错误检查和恢复。
- Word 对象模型常量(例如
WdSaveFormat
、WdUnits
等)在工具参数中以数值形式表示。您可能需要参考 Word VBA 文档来了解具体值。
This server cannot be installed
MCP 服务器可通过 COM Interop 与 Windows 上的 Microsoft Word 文档进行编程交互,允许执行文档创建、文本操作、格式化和表格管理等操作。