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 Interop Word サーバー
このプロジェクトは、Windows 上の COM Interop を使用して Microsoft Word ドキュメントとの対話を可能にするモデル コンテキスト プロトコル (MCP)サーバーを実装します。
一般的な 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
ディレクトリに出力されます。
サーバーの実行
サーバーは、 stdio
またはsse
という 2 つの異なる MCP トランスポートを使用して実行できます。
stdioトランスポート
これはデフォルトのモードです。標準入出力を介して通信するローカルクライアントに適しています。
または
node dist/index.js
コマンドを指定して、stdio メソッドを使用して MCP クライアント (MCP Inspector など) を接続します。
SSE(サーバー送信イベント)トランスポート
このモードでは、Web ベースまたはリモート クライアントに適した HTTP および Server-Sent Events が使用されます。
パワーシェル:
バッシュ/コマンド:
サーバーは通常、ポート 3001 (またはPORT
環境変数で指定されたポート) で HTTP サーバーを起動します。
- SSEエンドポイント:
http://localhost:3001/sse
- メッセージエンドポイント(クライアントPOST用):
http://localhost:3001/messages
SSE エンドポイント URL を指定して、SSE メソッドを使用して MCP クライアントを接続します。
利用可能なツール
サーバーは次のツールを公開します (ツール名には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 = Single)。
段落の書式設定:
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
(number): 行数。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
(boolean): ヘッダーの場合は 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=レター、8=A4)。
注記
- このサーバーでは、サーバーが実行されるマシンに Microsoft Word がインストールされ、COM Interop 経由でアクセスできる必要があります。
- COM操作のエラー処理は基本的なものです。堅牢な運用環境では、より詳細なエラーチェックとリカバリが必要になる場合があります。
- Wordオブジェクトモデル定数(
WdSaveFormat
、WdUnits
など)は、ツール引数内で数値で表されます。具体的な値については、Word VBAのドキュメントを参照する必要がある場合があります。
This server cannot be installed
COM Interop を介して Windows 上の Microsoft Word ドキュメントとのプログラムによる対話を可能にし、ドキュメントの作成、テキスト操作、書式設定、表管理などの操作を可能にする MCP サーバー。