Word Office Interop MCP Server

使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,它允许大型语言模型 (LLM) 通过标准化的 MCP 协议与 Microsoft Word 应用程序进行交互。借助 Windows COM Interop 技术,该服务器将 Word 的各种功能封装成 MCP 工具,供 LLM 客户端调用,实现文档的创建、编辑、格式化等操作。

主要功能点

  • Word 文档操作: 提供创建、打开、保存、另存为、关闭 Word 文档的功能。
  • 文本编辑: 支持在 Word 文档中插入、删除、查找和替换文本,以及设置文本格式(粗体、斜体、下划线)。
  • 段落格式化: 允许调整段落的对齐方式、缩进、行间距、段前距和段后距。
  • 表格操作: 支持在文档中添加表格、设置单元格文本、插入行列以及应用表格样式。
  • 图片处理: 能够插入图片并调整图片大小。
  • 页眉页脚设置: 允许设置页眉和页脚文本。
  • 页面布局: 支持设置页面边距、纸张方向和纸张大小。
  • 多种通信协议: 支持 stdio 和 SSE (Server-Sent Events) 两种 MCP 通信传输协议。

安装步骤

  1. 环境准备:
    • 确保已安装 Node.js (推荐 v18 或更高版本)。
    • 确保已安装 npm 包管理器。
    • 必须在 Windows 操作系统 上运行,并且已安装 Microsoft Word 应用程序。
  2. 下载代码:
    • 克隆 GitHub 仓库或下载源代码压缩包。
    git clone https://github.com/mario-andreschak/mcp-msoffice-interop-word.git
    cd mcp-msoffice-interop-word
  3. 安装依赖:
    • 在项目根目录下运行以下命令安装项目依赖。
    npm install
  4. 构建项目:
    • 运行以下命令编译 TypeScript 代码到 JavaScript。
    npm run build
    • 编译后的文件将输出到 'dist' 目录。

服务器配置

MCP 服务器需要配置启动命令才能被 MCP 客户端(如 MCP Inspector)调用。以下是针对 stdio 传输方式的 MCP 客户端配置信息(JSON 格式):

{
  "server name": "mcp-msoffice-interop-word",
  "command": "node",
  "args": [
    "dist/index.js"
  ],
  "transport": "stdio"
}

配置参数说明:

  • '"server name"': 服务器名称,可以自定义,用于在客户端标识该服务器。
  • '"command"': 启动服务器进程的命令,这里使用 'node' 命令来运行 JavaScript 文件。
  • '"args"': 传递给启动命令的参数,这里指定了编译后的服务器入口文件 'dist/index.js'。
  • '"transport"': 指定 MCP 客户端与服务器的通信方式,这里设置为 '"stdio"' (标准输入输出)。

如果使用 SSE 传输: 需要配置 SSE 相关的 endpoint 信息,具体配置方法请参考 MCP 客户端工具的文档。启动 SSE 传输模式的服务器,需要在运行服务器前设置环境变量 'MCP_TRANSPORT=sse',例如:'MCP_TRANSPORT=sse npm start'。 SSE 模式的服务器默认监听端口 3001,可以通过设置 'PORT' 环境变量来修改端口。

基本使用方法

  1. 启动服务器:
    • stdio 传输 (默认): 在项目根目录下运行 'npm start' 或 'node dist/index.js' 命令。
    • SSE 传输: 在 PowerShell 中运行 '$env:MCP_TRANSPORT="sse"; npm start' 或在 Bash/Cmd 中运行 'MCP_TRANSPORT=sse npm start' 命令。
  2. 连接 MCP 客户端:
    • 使用 MCP 客户端工具(如 MCP Inspector),根据选择的传输协议 (stdio 或 SSE) 和上述服务器配置信息,连接到正在运行的 MCP 服务器。
  3. 调用工具:
    • 连接成功后,在 MCP 客户端中可以发现并调用服务器提供的各种 'word_' 开头的工具。
    • 根据工具的参数描述,提供相应的参数值,即可让 LLM 控制 Word 执行相应的文档操作。
    • 例如,调用 'word_insertText' 工具可以在 Word 文档的当前选中位置插入指定的文本。

注意:

  • 运行该服务器的机器必须安装了 Microsoft Word,并且服务器进程需要有权限访问 Word 应用程序。
  • Word 常量(如 'WdSaveFormat', 'WdUnits' 等)在工具参数中以数字值表示,具体数值请参考 Microsoft Word VBA 文档。

服务器信息