该项目实现了一个模型上下文协议(MCP)服务器,允许通过Windows上的COM互操作与Microsoft Word文档进行交互。
它提供了MCP工具来编程地执行常见的Word处理任务。
winax)封装常见的Microsoft Word操作。stdio和sse传输方式用于MCP通信。@modelcontextprotocol/sdk。npm install
要将TypeScript代码编译成JavaScript:
npm run build
这将把编译后的文件输出到dist目录。
服务器可以使用两种不同的MCP传输方式运行:stdio或sse。
这是默认模式。适用于通过标准输入/输出进行通信的本地客户端。
npm start
或者
node dist/index.js
使用stdio方法连接您的MCP客户端(例如,MCP Inspector),指向node dist/index.js命令。
此模式使用HTTP和服务器发送事件,适用于基于Web或远程客户端。
PowerShell:
$env:MCP_TRANSPORT="sse"; npm start
Bash / Cmd:
MCP_TRANSPORT=sse npm start
服务器将启动一个HTTP服务器,通常在3001端口(或由PORT环境变量指定的端口)。
http://localhost:3001/ssehttp://localhost:3001/messages使用SSE方法连接您的MCP客户端,提供SSE端点URL。
服务器公开了以下工具(工具名称以word_为前缀):
文档操作:
word_createDocument: 创建一个新的空白Word文档。word_openDocument: 打开一个已存在的文档。
filePath (字符串): 文档的绝对路径。word_saveActiveDocument: 保存当前活动文档。word_saveActiveDocumentAs: 将活动文档另存为新的路径/格式。
filePath (字符串): 要保存到的绝对路径。fileFormat (数字, 可选): 数字WdSaveFormat值(例如,16为docx,17为pdf)。word_closeActiveDocument: 关闭活动文档。
saveChanges (数字, 可选): WdSaveOptions值(0=不保存,-1=保存,-2=提示)。默认: 0。文本操作:
word_insertText: 在选择处插入文本。
text (字符串): 要插入的文本。word_deleteText: 根据选择删除文本。
count (数字, 可选): 要删除的单位数(默认: 1)。正数=向前,负数=向后。unit (数字, 可选): WdUnits值(1=字符,2=单词等)。默认: 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=主要,2=首页,3=偶数页)。默认: 1。页面设置操作:
word_setPageMargins: 设置页面边距。
topPoints (数字): 上边距,以点为单位。bottomPoints (数字): 下边距,以点为单位。leftPoints (数字): 左边距,以点为单位。rightPoints (数字): 右边距,以点为单位。word_setPageOrientation: 设置页面方向。
orientation (数字): WdOrientation值(0=纵向,1=横向)。word_setPaperSize: 设置纸张大小。
paperSize (数字): WdPaperSize值(例如,1=信纸,8=A4)。WdSaveFormat,WdUnits等)在其工具参数中以数值形式表示。您可能需要参考Word VBA文档以获取特定值。