Skip to main content
Glama

MCP Office 互操作 Word 服务器

该项目实现了一个模型上下文协议 (MCP)服务器,允许使用 Windows 上的 COM Interop 与 Microsoft Word 文档进行交互。

它提供 MCP 工具以编程方式执行常见的文字处理任务。

特征

  • 通过 COM Interop ( winax ) 包装常见的 Microsoft Word 操作。

  • 将功能公开为 MCP 工具。

  • 支持 MCP 通信的stdiosse传输。

  • 使用 TypeScript 构建并使用@modelcontextprotocol/sdk

Related MCP server: Deskaid

先决条件

  • Node.js(建议使用 v18 或更高版本)

  • npm

  • 安装在 Windows 机器上的 Microsoft Word。

安装

  1. 克隆存储库或下载源代码。

  2. 导航到终端中的项目目录。

  3. 安装依赖项:

    npm install

建筑

将 TypeScript 代码编译为 JavaScript:

npm run build

这会将编译后的文件输出到dist目录。

运行服务器

服务器可以使用两种不同的 MCP 传输运行: stdiosse

stdio 传输

这是默认模式。适用于通过标准输入/输出进行通信的本地客户端。

npm start

或者

node dist/index.js

使用 stdio 方法连接您的 MCP 客户端(例如,MCP Inspector),指向node dist/index.js命令。

SSE(服务器发送事件)传输

此模式使用 HTTP 和服务器发送事件,适用于基于 Web 或远程客户端。

PowerShell:

$env:MCP_TRANSPORT="sse"; npm start

Bash/命令:

MCP_TRANSPORT=sse npm start

服务器将启动一个 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 对象模型常量(例如WdSaveFormatWdUnits等)在工具参数中以数值形式表示。您可能需要参考 Word VBA 文档来了解具体值。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mario-andreschak/mcp-msoffice-interop-word'

If you have feedback or need assistance with the MCP directory API, please join our Discord server