Skip to main content
Glama

MCP Office Interop Word サーバー

このプロジェクトは、Windows 上の COM Interop を使用して Microsoft Word ドキュメントとの対話を可能にするモデル コンテキスト プロトコル (MCP)サーバーを実装します。

一般的な Word 処理タスクをプログラムで実行するための MCP ツールを提供します。

特徴

  • COM Interop ( winax ) を介して一般的な Microsoft Word 操作をラップします。

  • MCP ツールとして機能を公開します。

  • MCP 通信用のstdioおよびsseトランスポートの両方をサポートします。

  • 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ディレクトリに出力されます。

サーバーの実行

サーバーは、 stdioまたはsseという 2 つの異なる MCP トランスポートを使用して実行できます。

stdioトランスポート

これはデフォルトのモードです。標準入出力を介して通信するローカルクライアントに適しています。

npm start

または

node dist/index.js

node dist/index.jsコマンドを指定して、stdio メソッドを使用して MCP クライアント (MCP Inspector など) を接続します。

SSE(サーバー送信イベント)トランスポート

このモードでは、Web ベースまたはリモート クライアントに適した HTTP および Server-Sent Events が使用されます。

パワーシェル:

$env:MCP_TRANSPORT="sse"; npm start

バッシュ/コマンド:

MCP_TRANSPORT=sse npm start

サーバーは通常、ポート 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オブジェクトモデル定数( 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