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(Model Context Protocol) 서버를 구현합니다.
일반적인 워드 프로세싱 작업을 프로그래밍 방식으로 수행할 수 있는 MCP 도구를 제공합니다.
특징
- COM Interop(
winax
)를 통해 일반적인 Microsoft Word 작업을 래핑합니다. - MCP 도구로서의 기능을 공개합니다.
- MCP 통신을 위해
stdio
와sse
전송을 모두 지원합니다. - TypeScript로 빌드되었으며
@modelcontextprotocol/sdk
사용합니다.
필수 조건
- Node.js(v18 이상 권장)
- 엔피엠
- Windows 컴퓨터에 Microsoft Word가 설치되어 있습니다.
설치
- 저장소를 복제하거나 소스 코드를 다운로드하세요.
- 터미널에서 프로젝트 디렉토리로 이동합니다.
- 종속성 설치:지엑스피1
건물
TypeScript 코드를 JavaScript로 컴파일하려면:
이렇게 하면 컴파일된 파일이 dist
디렉토리에 출력됩니다.
서버 실행
서버는 stdio
또는 sse
두 가지 MCP 전송을 사용하여 실행될 수 있습니다.
stdio 전송
기본 모드입니다. 표준 입출력(STIO)을 통해 통신하는 로컬 클라이언트에 적합합니다.
또는
stdio 메서드를 사용하여 MCP 클라이언트(예: MCP Inspector)를 연결하고 node dist/index.js
명령을 가리킵니다.
SSE(서버에서 보낸 이벤트) 전송
이 모드는 웹 기반 또는 원격 클라이언트에 적합한 HTTP 및 서버 전송 이벤트를 사용합니다.
파워셸:
배시 / 커맨드:
서버는 일반적으로 포트 3001(또는 PORT
환경 변수에 지정된 포트)에서 HTTP 서버를 시작합니다.
- 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=문자, 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=Letter, 8=A4).
노트
- 이 서버를 사용하려면 Microsoft Word가 설치되어 있어야 하며, 서버가 실행되는 컴퓨터에 COM Interop을 통해 액세스할 수 있어야 합니다.
- COM 작업에 대한 오류 처리는 기본적인 내용입니다. 안정적인 운영 환경에서는 더욱 세부적인 오류 검사 및 복구가 필요할 수 있습니다.
- Word 개체 모델 상수(예:
WdSaveFormat
,WdUnits
등)는 도구 인수에 숫자 값으로 표현됩니다. 특정 값은 Word VBA 설명서를 참조해야 할 수 있습니다.
This server cannot be installed
COM Interop을 통해 Windows에서 Microsoft Word 문서와 프로그래밍 방식으로 상호 작용할 수 있는 MCP 서버로, 문서 생성, 텍스트 조작, 서식 지정, 표 관리 등의 작업이 가능합니다.